js

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

JS HTML DOM

通过 JavaScript,您需要操作 HTML 元素。

为了做到这件事情,您必须首先找到该元素。有三种方法来做这件事:

  • 通过 id 找到 HTML 元素
  • 通过标签名找到 HTML 元素
  • 通过类名找到 HTML 元素

JS 对象

JS把HTML文件的所有元素(元素包含标签及标签属性,标签内容)的内容统称为对象(对象即用户在浏览器看到的所有内容,只有内容)。由于内容有大小,长短,有时需要被改变,以及有些内容结构的特殊性,因此对象有属性和方法。

详细对象创建语法见:http://www.w3school.com.cn/jsref/jsref_obj_string.asp

访问对象属性的语法是:

objectName.propertyName

这个例子使用了 String 对象的 length 属性来获得字符串的长度:

var message="Hello World!";
var x=message.length;

在以上代码执行后,x 的值将是:

12


可以通过以下语法来调用方法:

objectName.methodName()

这个例子使用了 String 对象的 toUpperCase() 方法来将文本转换为大写:

var message="Hello world!";
var x=message.toUpperCase();

在以上代码执行后,x 的值将是:

HELLO WORLD!


JS自己提供了多个形式的数据内容,即内建对象,String,Data,Array。js创建对象类似于java都是用new关键字,但是区别是创建对象时指明数据类型时只在new后方指定,声明部分所有对象都一样是使用var。

美丽的JS,不仅可以操作元素的便签属性,样式(其实对我来说样式也是属性之一),还专门把内容作为对象来处理。(为了方便对内容/数据进行操作)


JS对象表示法JSON:

JS对象表示法是JS对象的字符串表示法,它使用文本表示一个JS对象的信息,本质是一个字符串。(什么是文本,文本即信息的书面表现形式,如txt文档中表示的信息是不分数据类型的。全是字符串。(不要受java中字符串是一种数据类型的影响。))

JSON全程为JavaScript Object Notation,它基于JavaScript Programming Language,Standard ECMA-262 3rd Edition - December 1999的一个子集,作为一种轻量级的数据交换格式,JSON早在2000年前就已经在使用了。2006Douglas CrockfordJSON提交给IETF后,JSON开始作为Javascript的一个严格的子集,它用Javascript中的一些模式来表示结构化数据。

var  obj={a:'hello',b:'world'};

var  json='{"a":"hello","b":"world"}';

也可以直接用json形式书写创建js对象

<script type="text/javascript">
var JSONObject= {
"name":"Bill Gates",
"street":"Fifth Avenue New York 666",
"age":56,
"phone":"555 1234567"};
document.getElementById("jname").innerHTML=JSONObject.name
document.getElementById("jage").innerHTML=JSONObject.age
document.getElementById("jstreet").innerHTML=JSONObject.street
document.getElementById("jphone").innerHTML=JSONObject.phone
</script>

JSON是JS对象表示法,JS的一切对象都可用JSON表示,例如,字符串,数字,对象,数组等。但类似于java对象结构的数据结构和数组这种数据结构是比较特殊且常用JSON来表示的两种数据结构。


为什么js内建对象没有区分整数,非整数,浮点数等。因为js内建对象不需要参与数学运算,后台的数据需要参与数学运算。


json格式的数据传到后台是字符串吗?当然不是,所有数据传到任何后台都是流中读取出来的,显然流是没有数据类型区分的,只能从字节流或字符流开始将数据转化为字符串等,显然json解析出来后解析为字符串是被插件封装了过程。


JSON 解析器

提示:eval() 函数可编译并执行任何 JavaScript 代码。这隐藏了一个潜在的安全问题。

使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。

在浏览器中,这提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。

较新的浏览器和最新的 ECMAScript (JavaScript) 标准中均包含了原生的对 JSON 的支持。

<script type="text/javascript">
var txt = '{"employees":[' +
'{"firstName":"Bill","lastName":"Gates" },' +
'{"firstName":"George","lastName":"Bush" },' +
'{"firstName":"Thomas","lastName":"Carter" }]}';


obj = JSON.parse(txt);


document.getElementById("fname").innerHTML=obj.employees[1].firstName 
document.getElementById("lname").innerHTML=obj.employees[1].lastName 
</script>
对于较老的浏览器,可使用 JavaScript 库: https://github.com/douglascrockford/JSON-js

<script type="text/javascript" src="/CoreResource/JS/json2.min.js"></script>


序列化和反序列化:

序列化方法

var jsonObj = { id: '01', name: 'Tom' };
JSON.stringify(jsonObj);

 

反序列化方法

var jsonString = "{ id: '01', name: 'Tom' }";
JSON.parse(jsonString);

JSON只是js对象(数据/信息/内容)的名称:值的字符串表示形式而已。强调序列化和反序列化干什么?无非是将js对象和java对象混淆了。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭