ECMAScript基础中的易错点

**

ECMAScript是JavaScript的规范,JavaScript是ECMAScript的实现

**
ECMAScript规定了语法、类型、语句、关键字、保留字、操作符、对象

基本类型:undefined、null、Boolean、number、string   复杂类型:object  array是引用类型

1.用alert和typeof()操作符区分被检测量是没有声明还是没有初始化

var message;
alert(message);   //“undefined”
alert(bts);       //产生错误

alert(typeof message);   //“undefined”
alert(typeof bts);       //“undefined”


2.null表示一个空对象指针,所以用typeof检测返回object;而且 null == undefined 返回 true

3.NaN  非数值  用于表示一个本来要返回数值的操作数未返回数值的情况
涉及NaN的操作都会返回NaN
NaN与任何数值都不相等 NaN == NaN 返回false

4.isNaN()函数  可转换数值的返回true  不能转换成数值的返回false
可以用于对象,这时先调用对象的valueof()方法,根据返回值确定能否转换为数值,如不能,再调用toString()方法,再返回值

5.数值转换   用于任何类型 Number()函数  用于把字符串转换为数值 parseInt()函数 parseFloat()函数
Number()中空字符串返回值为0;
parseInt()中空字符串返回值为NaN; 可指定参数 parseInt(“AF”,16)
parseFloat()中解析十进制,若为十六进制 0xA 始终转为0

6.把值转换为字符串有两种  用toString()方法 和 用转型函数String()
toString()方法,null和undefined没有这个方法
String() 函数可将任何类型值转换为字符串,规则:有toString()方法则调用并返结果,null—返“null” undefined—返“undefined”

7.for-in 语句是迭代语句  用来枚举对象得到属性
break和continue都跳出循环,break跳出循环后执行后面代码,continue跳出循环后从循环顶部开始执行代码

8.位操作符 在ES中,当数值应用位操作符,后台转换过程:64位数值被转换为32位—>执行位操作—>将32位结果转回64位
32位中前31位表示数值,第32位表示符号(0是正,1是负),负数同样以二进制码存储,但用的是二进制补码
求-18的二进制补码—–>先求18的二进制码—->求得反码是-19—–>反码加1—–>得到-18
位操作符:按位非、按位与、按位或、按位异或、左移、有符号右移、无符号右移

//按位非
var num = 25;
var num1 = ~num;  //num1值为-26

//按位与
var result = 25 & 3;
alert(result);    //每一位对齐执行与操作,结果为1

//按位或
var result = 25 | 3;
alert(result);    //每一位对齐执行或操作,结果为27

//按位异或   两个操作数相同时返0  不同时返1
var result = 25 ^ 3;
alert(result);     //值为26

//左移
var old = 2;          //二进制10
var new = old << 5;   //二进制的1000000,值为64,结果为64

//有符号右移
var old = -64;          
var new = old >> 5;   //结果为 -2

//无符号右移
var old = 64;          //二进制的1000000
var new = old >>> 5;   //二进制的10,值为2,结果为 2
var old = -64;         //把负数的二进制当成正数的二进制  等于二进制111111111111111111100000
var new = old >>> 5;    //显然结果出错,134217726


9.布尔操作符   非、与、或    !   &&   ||

10.函数   ES中的参数在内部是用一个数组来表示的,函数接收的是数组
在函数体内可通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数
通过访问arguments对象的length属性获知参数个数 ,由传入的个数决定,不由定义个数决定
ES中函数没有重载,定义了两个相同的函数,名字属于后定义的函数
ES中没有函数签名的概念,因为函数参数以数组形式传递的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值