1.函数可以通过声明定义.
-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------
JSON
什么是 JSON?
JSON 英文全称 JavaScript Object Notation;是一种轻量级的数据交换格式;JSON是独立的语言
JSON 使用 JavaScript 语法,但是 JSON 格式仅仅是一个文本。
文本可以被任何编程语言读取及作为数据格式传递。
JSON 语法规则
数据为 键/值 对;数据由逗号分隔;大括号保存对象;方括号保存数组
JSON 数据 - 一个名称对应一个值
JSON 数据格式为 键/值 对,就像 JavaScript 对象属性。
键/值对包括字段名称(在双引号中),后面一个冒号,然后是值
ex: "name":"Runoob"
JSON 对象
JSON 对象保存在大括号内。
就像在 JavaScript 中, 对象可以保存多个 键/值 对:
{"name":"Runoob", "url":"www.runoob.com"}
JSON 数组
JSON 数组保存在中括号内。
就像在 JavaScript 中, 数组可以包含对象:
"sites":[
{"name":"Runoob", "url":"www.runoob.com"},
{"name":"Google", "url":"www.google.com"},
{"name":"Taobao", "url":"www.taobao.com"}
]
在以上实例中,对象 "sites" 是一个数组,包含了三个对象。
每个对象为站点的信息(网站名和网站地址)。
JSON 字符串转换为 JavaScript 对象
通常我们从服务器中读取 JSON 数据,并在网页中显示数据。
1.创建 JavaScript 字符串,字符串为 JSON 格式的数据
2.使用 JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象:
3.在你的页面中使用新的 JavaScript 对象
ex:
<p id="demo"></p>
<script>
var text = '{ "sites" : [' +
'{ "name":"Runoob" , "url":"www.runoob.com" },' +
'{ "name":"Google" , "url":"www.google.com" },' +
'{ "name":"Taobao" , "url":"www.taobao.com" } ]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML = obj.sites[1].name + " " + obj.sites[1].url;
</script>
显示:Google www.google.com
------------------------------------------------------------------------------
JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。
//--------------------------------------------------------------
his
面向对象语言中 this 表示当前对象的一个引用。
但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。
在方法中,this 表示该方法所属的对象。
如果单独使用,this 表示全局对象。
在函数中,this 表示全局对象。
在函数中,在严格模式下,this 是未定义的(undefined)。
在事件中,this 表示接收事件的元素。
类似 call() 和 apply() 方法可以将 this 引用到任何对象。
(对象)方法中的 this
在对象方法中, this 指向调用它所在方法的对象
ex:
<p id="demo"></p>
<script>
// 创建一个对象
var person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
// 显示对象的数据
document.getElementById("demo").innerHTML = person.fullName();
显示:John Doe
单独使用 this
单独使用 this,则它指向全局(Global)对象。
在浏览器中,window 就是该全局对象为 [object Window]
ex:
<p id="demo"></p>
<script>
var x = this;
document.getElementById("demo").innerHTML = x;
</script>
显示:[object Window]
函数中使用 this(默认)
在函数中,函数的所属者默认绑定到 this 上。
ex:
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = myFunction();
function myFunction() {
return this;
}
</script>
显示:[object Window]
事件中的 this
在 HTML 事件句柄中,this 指向了接收事件的 HTML 元素
ex:<button onclick="this.style.display='none'">点我后我就消失了</button>
显示:
描述:点击按钮,触发事件,this指向接收事件得的button,事件是隐藏,也就是按钮隐藏
//------------------------------------------------------------------------------------------
理解对象(补充理解)
在 JavaScript中,几乎所有的事物都是对象。
为变量赋值
var car = "Fiat";
为对象赋值,但对象可以包含多个值(多个变量)。
var car = {type:"Fiat", model:500, color:"white"};
描述:
3 个值 ("Fiat", 500, "white") 赋予变量 car
3 个变量 (type, model, color) 赋予变量 car
"JavaScript 对象是变量的容器"( "JavaScript 对象是键值对的容器"。)。
键值对通常写法为 name : value (键与值以冒号分割)。
键值对在 JavaScript 对象通常称为 对象属性。
访问对象属性
两种方式
ex:
<p id="demo"></p>
<script>
var person = {
firstName : "John",
lastName : "Doe",
id : 5566
};
方式1:document.getElementById("demo").innerHTML =
person.firstName + " " + person.lastName;
方式2:document.getElementById("demo").innerHTML =
person["firstName"] + " " + person["lastName"];
</script>
描述:使用 .property 或 ["property"]效果相同
显示:John Doe
对象方法
对象的方法定义了一个函数,并作为对象的属性存储。
对象方法通过添加 () 调用 (作为一个函数)。
ex:(同上)
<p id="demo"></p>
<script>
var person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function()
{
return this.firstName + " " + this.lastName;
}
};
document.getElementById("demo").innerHTML = person.fullName();
显示:John Doe
总结:回调 return this.firstName + " " + this.lastName;给函数,而函数又是对象属性得值,层层递进
总结:(整体认知)
对象:
1.对象就是一个变量的集合,声明一个变量(对象),为这个变量(对象)赋值(可以是多个),然后把变量的值(属性)当成变量再次赋值(也可以多个,类似选择器嵌套)
2.表现形式差异,声明一个变量(对象),它的属性(变量值,但不是具体值,一般是一个范围,再次赋值,也就是属性值才是具体值)用大括号包裹,
属性与属性间用逗号隔开,赋值用冒号而不是引号(这里直接当成变量,用冒号为变量赋值)
3.同一个对象,有多个叫法,一个对象括号内是它的属性和属性值(重新声明的变量和变量的值),对象名相当于这个变量集合的名字(类似数组),
可以说对象是变量的容器,也可以说是键值对的容器(以当做变量,但是属性变现形式还是有区别,这是一种正统的叫法),键值对键名就是属性名(变量名),值(value)就是值
4.调用对象(变量组)中某个(精确)属性(变量)的方式,(ps:调的是名字属性名/变量名,用(输出)的是它代表的值)
1.是用点连接对象名和属性名(键名):队形名.属性名
2.是用中括号连接对象名和属性名,且括号里面是属性名,且属性名要用引号包裹
5.属性值,可以是一个函数(方法),函数运行,把运行结果赋予函数(函数值),函数的值就是这个属性的值
6.有个名(变量名),有个值都可以叫做对象
//--------------------------------------------------------------------------------------------------------------------------
遇到问题:
1.心态还是没有调整好,有点学不进去,看的东西不进脑子,思考迟钝
2.json概念不理解
3.this概念(含义)理解,应用环境待理解
评论