js

原创 2018年02月01日 10:46:20

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对象混淆了。

js,js

感觉好像跟js过不去一样,反正它是在跟我过不去了,前几天写个简单的年龄验证就整了两节课,有错误也不提示,提示了又不全面,含含糊糊的,没有代码提示太痛苦了。刚刚又这样,定义个变量还非得按照它的格式啊,我...
  • xiaoxiao0804
  • xiaoxiao0804
  • 2008年11月06日 10:47
  • 96

js文件中引用其他js文件

在a.js中需要用到b.js中的方法,所以需要在a.js中引用b.js文件,js不提供类似java中import的导包语句所以只能添加元素到html文档,方法如下: 在a.js文件中写 方法一: d...
  • Inuyasha1121
  • Inuyasha1121
  • 2016年04月08日 13:25
  • 11580

js调用其他js文件的函数,以及js加载过程

我们在编写js时,通常会需要在一个js文件中调用另一个js文件的函数,那么如何调用呢? 例如我有一个a.js文件,功能是弹出一个窗口的函数,我在b.js文件中需要调用这个函数,写法如下(函数开头弹窗...
  • sinat_32290679
  • sinat_32290679
  • 2016年08月24日 15:57
  • 6264

关于js中的then()

then()相关的东西包括但不限于:promise,thien.js       虽然还没彻底搞清楚这些个玩意儿,但是  现在知道了  then()是干嘛的了 最主要的,是解决了异...
  • Scalaaaaaa
  • Scalaaaaaa
  • 2017年10月19日 14:11
  • 1868

javascript中动态加载js文件多种解决办法

var head = document.head                 || document.getElementsByTagName("head")[0]|| document.docu...
  • yinxianluo
  • yinxianluo
  • 2015年07月28日 13:14
  • 6733

【js学习笔记-053】js中的面向对象技术------枚举类型

枚举类型是一种类型,它是值的有限集合,如果值定义为这个类型则该值是可以列出(或称可枚举)的。在C语言中,枚举类型是通过关键字enum声明的。Enum是ECMAScript5的保留字,很有可能js就会内...
  • pigpigpig4587
  • pigpigpig4587
  • 2013年10月09日 23:09
  • 7127

JS控制animation事件

#div1{width:100px; height:100px; background-color:#F00;} .slidein{-webkit-animation-duration:3s; -w...
  • kongjunchao159
  • kongjunchao159
  • 2015年08月06日 15:23
  • 2663

js实现加减乘除

DOCTYPE html> html> head> meta charset="utf-8" /> title>title> head> body> input type="te...
  • Vivian_shuang
  • Vivian_shuang
  • 2016年07月11日 08:31
  • 4180

JS设置/获取日期和时间

年月日 星期     New Document //单个数字配零  function getDouble(number){   var numbers=["0","1","2...
  • bao19901210
  • bao19901210
  • 2016年02月22日 10:15
  • 15463

js浮点数精度问题(js计算中遇到的坑)

转自:http://talentluke.iteye.com/blog/1767138 大多数语言在处理浮点数的时候都会遇到精度问题,但是在JS里似乎特别严重,来看一个例子 alert(4...
  • DADADIE
  • DADADIE
  • 2015年12月23日 10:44
  • 10623
收藏助手
不良信息举报
您举报文章:js
举报原因:
原因补充:

(最多只允许输入30个字)