JS和JSON提纲

1.js变量(数据类型)有字符串值,数值,布尔值,数组,对象,undefined。(null是object类型)   

undefined:没有值的变量,其值是 undefined。typeof 也返回 undefined。任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。                                                                                                                                                          

Null:在 JavaScript 中,null 是 "nothing"。它被看做不存在的事物。不幸的是,在 JavaScript 中,null 的数据类型是对象。您可以把 null 在 JavaScript 中是对象理解为一个 bug。它本应是 null。您可以通过设置值为 null 清空对象,您也可以通过设置值为undefined 清空对象                                                                                                                                                                        

Undefined 与 Null 的区别:Undefined 与 null 的值相等,但类型不相等

 

也可以这样区分:

           原始数据:原始数据值是一种没有额外属性和方法的单一简单数据值。

typeof 运算符可返回以下原始类型之一:

  • string
  • number
  • boolean
  • undefined

(当然有String、Number、Boolean对象了,但是尽量不要使用这些对象)

           复杂数据

typeof 运算符可返回以下两种类型之一:

  • function
  • object

typeof 运算符把对象、数组或 null 返回 object。typeof 运算符不会把函数返回 object。

2.typeof 除了会返回原始数据string、number、boolean、undefined外,还会把对象、数组或 null 返回 object,以及返回函数为function。

3.js拥有动态类型,这意味着相同变量可用作不同类型

4.运算符:                                                                                                                                                                                      ==:判断值相等          ===:判断值和类型都相等,即全等                                                                                                                  !=:判断值不相等       !==:值或者类型不相等,即不全等

5.JavaScript 对象无法进行对比,比较两个 JavaScript 将始终返回 false。JavaScript 字符串

1.
var x = "Bill";             
var y = new String("Bill");

// (x == y) 为 true,因为 x 和 y 的值相等

2.
var x = "Bill";             
var y = new String("Bill");

// (x === y) 为 false,因为 x 和 y 的类型不同(字符串与对象)

3.
var x = new String("Bill");             
var y = new String("Bill");

// (x == y) 为 false,因为 x 和 y 是不同的对象

4.
var x = new String("Bill");             
var y = new String("Bill");

// (x === y) 为 false,因为 x 和 y 是不同的对象

 

6.原始值,比如“Bill Gates”,无法拥有属性和方法(因为它们不是对象)。

              但是通过 JavaScript,方法和属性也可用于原始值,因为在执行方法和属性时 JavaScript 将原始值视为对象。

              见JavaScript 字符串方法

           7.有两种方式访问对象属性:objectName.propertyName 和objectName["propertyName"]

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

JSON:

           1.json对象,属性名必须带双引号,但是用.访问对象属性时又和js一样不能带引号

           2.JSON 格式评估为 JavaScript 对象。

              JSON 格式在语法上与创建 JavaScript 对象的代码相同。

 

http://www.w3school.com.cn/js/js_json.asp

           3.在从 web 服务器接收数据时,数据永远是(JSON对象的)字符串。JSON.parse正是用来解析这种字符串。这些数据会成为 JavaScript 对象。

             在接收服务器数据时一般是(JSON对象的)字符串。我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。

发送数据:
var myObj = { name:"Bill Gates",  age:62, city:"Seattle" };
var myJSON =  JSON.stringify(myObj);
window.location = "demo_json.php?x=" + myJSON;
//typeof(myJSON)        string
//结果将是遵守 JSON 标记法的一段字符串。


接收数据:
var myJSON = '{ "name":"Bill Gates",  "age":62, "city":"Seattle" }';
var myObj =  JSON.parse(myJSON);
document.getElementById("demo").innerHTML = myObj.name;
//typeof(myObj)         object

JSON.parse()

JSON 简介

JSON.parse()

          4.JSON 格式评估为 JavaScript 对象。

             JSON 格式在语法上与创建 JavaScript 对象的代码相同。

js对象:
{ name:"Bill Gates",  age:62, city:"Seattle" };

json对象:

{ "name":"Bill Gates",  "age":62, "city":"Seattle" };

http://www.w3school.com.cn/js/js_json.asp

          5.在向 web 服务器发送数据时,数据必须是字符串。通过 JSON.stringify() 把 JavaScript 对象转换为字符串。

结果将是遵守 JSON 标记法的一段字符串。myJSON 目前是一段字符串,并准备好送往服务器。

            所以说json.parse不是解析json对象,而是浏览器返回的遵守JSON标记法的字符串;json.stringfy()不是转换成json对象,而是转换成遵守json标记法的字符串。毕竟写在js中时,json对象的格式是:myObj = {"name":"Bill Gates", "age":62, "car":null}; 而不是'myObj = {"name":"Bill Gates", "age":62, "car":null};'

         6.注意,用for in循环遍历json对象时,遍历的是属性名(带引号),要访问值用括号标记法(json对象中属性名带引号,而点号访问属性又是不带引号的,括号标记法本来就要有引号的)。
与java不同,java只有可迭代类型才可以用增强for循环,普通的对象是不能增强for循环的,json则是对象就可以使用for in循环。

             for in循环json数组时,和java不同,遍历的是数组索引

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值