[JavaScript高级程序设计]语法、数据类型和一些区别注意
2015-10-08 12:10
567 查看
一、严格模式
定义了一种不同的解析和执行模型,规范了不确定行为,对不安全行为进行错误抛出,包括以下四点:
-
消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
- 为未来新版本的Javascript做好铺垫。
具体可参考:阮一峰严格模式详解;
二、语法语句
区分大小写、驼峰法命名、语句没有分号也有效,单行条件语句仍需加上{}
关键字:function if else break continue try cacth do while for if delete in等
保留字:abstract boolean byte int interface static等
变量:松散类型——可以用来保存任何值;var的使用使之成为局部变量,缺省则变量默认为全局变量;
三、数据类型
5中基本类型:Null Undefined Number Boolean String
1种复杂类型:Object
引用类型:Object Array Function Date RegExp 基本包装类型
四、类型区分
typeof操作符——五种基本数据类型,除了null,null被认为是一个空对象引用,返回object
instanceof ——instanceof其实是用来判断一个变量是否为某个对象的实例
constructor——可以返回对象相应的构造函数
具体可参考如下博文:点击打开链接
五、undefined、null辨析
一篇好博文,此处不重复造轮子了,阮一峰undefined和null的区别
六、一些区别、注意
Boolean类型只有两个字面值:true和false,而且这两个值跟数字值不是一回事,区分大小写
Number类型支持十进制、八进制(严格模式下无效)和十六进制表示;保存浮点数值的内存是整数的两倍,会发生转换
Number.MAX_VALUE、Number.NEGATIVE_INFINITY和Infinity
NaN——任何数值除以0返回NaN,NaN不等于NaN
数值转换:
Number()、parseInt()和parseFloat()
1、Number()转换规则
如果是数字值,简单传入和返回;
如果是布尔值,true-----1;false------0;
如果是null------0;
如果是undefined------NaN;
如果是字符串:
字符串中只含数字,则转换为十进制;
字符串中包含有效浮点格式,转换为浮点数;
字符串中包含十六进制,转换为十进制;
字符串是空,转换为0;
除以上以外,转换为NaN;
如果是对象,调用对象的valueOf方法,在按照前述规则转换;如果转换结果为NaN,则先调用对象的toString方法,再按照前述规则转换。
2、parseInt()——较为常用
看是否符合数值模式,它会忽略字符串前面的空格,直到找到第一个非空字符;解析直到遇到了一个非数字字符;
允许指定数值进制
Object类型
对象——一组数据和功能的集合;
var o = new Object();或者 new Object;
实例的属性和方法
constructor、hasOwnProperty()、isPropertyOf()、toLocaleString()、toString()、valueOf()
相等操作符
==和!= (先转换再比较)
===和!== (不转换)
<span style="font-size:18px;">null == undefined 返回true
null === undefined 返回false</span>
定义了一种不同的解析和执行模型,规范了不确定行为,对不安全行为进行错误抛出,包括以下四点:
-
消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
- 为未来新版本的Javascript做好铺垫。
具体可参考:阮一峰严格模式详解;
二、语法语句
区分大小写、驼峰法命名、语句没有分号也有效,单行条件语句仍需加上{}
关键字:function if else break continue try cacth do while for if delete in等
保留字:abstract boolean byte int interface static等
变量:松散类型——可以用来保存任何值;var的使用使之成为局部变量,缺省则变量默认为全局变量;
三、数据类型
5中基本类型:Null Undefined Number Boolean String
1种复杂类型:Object
引用类型:Object Array Function Date RegExp 基本包装类型
四、类型区分
typeof操作符——五种基本数据类型,除了null,null被认为是一个空对象引用,返回object
instanceof ——instanceof其实是用来判断一个变量是否为某个对象的实例
constructor——可以返回对象相应的构造函数
具体可参考如下博文:点击打开链接
五、undefined、null辨析
一篇好博文,此处不重复造轮子了,阮一峰undefined和null的区别
六、一些区别、注意
Boolean类型只有两个字面值:true和false,而且这两个值跟数字值不是一回事,区分大小写
Number类型支持十进制、八进制(严格模式下无效)和十六进制表示;保存浮点数值的内存是整数的两倍,会发生转换
Number.MAX_VALUE、Number.NEGATIVE_INFINITY和Infinity
NaN——任何数值除以0返回NaN,NaN不等于NaN
数值转换:
Number()、parseInt()和parseFloat()
1、Number()转换规则
如果是数字值,简单传入和返回;
如果是布尔值,true-----1;false------0;
如果是null------0;
如果是undefined------NaN;
如果是字符串:
字符串中只含数字,则转换为十进制;
字符串中包含有效浮点格式,转换为浮点数;
字符串中包含十六进制,转换为十进制;
字符串是空,转换为0;
除以上以外,转换为NaN;
如果是对象,调用对象的valueOf方法,在按照前述规则转换;如果转换结果为NaN,则先调用对象的toString方法,再按照前述规则转换。
2、parseInt()——较为常用
看是否符合数值模式,它会忽略字符串前面的空格,直到找到第一个非空字符;解析直到遇到了一个非数字字符;
允许指定数值进制
Object类型
对象——一组数据和功能的集合;
var o = new Object();或者 new Object;
实例的属性和方法
constructor、hasOwnProperty()、isPropertyOf()、toLocaleString()、toString()、valueOf()
相等操作符
==和!= (先转换再比较)
===和!== (不转换)
<span style="font-size:18px;">null == undefined 返回true
null === undefined 返回false</span>
<span style="font-size:18px;">var result = ("55" == 55) 返回true</span>
<span style="font-size:18px;">var result = ("55" === 55) 返回false </span>
相关文章推荐
- JS数组方法汇总 ARRAY数组元素的添加和删除
- (" use strict")Javascript 严格模式详解
- jsp九大隐含对象的运用方法总结
- LINK - Paging for Azure Mobile Service Custom API (JS)
- JavaScript 中 onload 事件绑定多个方法
- jsp中的多行注释,在注释js文件内容的时候与注释body里的内容时有区别
- JavaScript 的 BOM
- js 笛卡尔积算法与多重数组笛卡尔积的例子
- [JSP]JSP中include指令和include动作的区别
- IE下 js文件上传时拒绝访问问题
- firefox调试js时发现js的中文显示乱码
- javascript中十进制转十六进制代码
- 动态创建script在IE中缓存js文件时导致编码不正确bug
- bzoj 1013: [JSOI2008]球形空间产生器sphere
- JSON字符串与JSON对象的区别
- js小数运算出现多位小数如何解决
- 企业IM (或业务系统)web api的json格式设计思考(原创)
- js实现超酷的照片墙展示效果图附源码下载
- javascript学习之Date对象
- 浅析对JSF项目的单元测试