JavaScript细节易错点整理

1.注意:不要直接判断两个浮点数是否相等

console.log(0.1 + 0.2);//0.30000000000000004
console.log(0.1 + 0.2 == 0.3);//false
console.log(parseInt(0.01) * 10 + parseInt(0.02 * 10) == parseInt(0.3));//true

2.isNaN("red");//false   任何不能被转换为数值的值都会返回true

3.字符串是不可变的,他在内存中都是另辟空间的。(内从中栈是用来存储基本类型的)

var str="old";str="new"; console.log(str);//new

栈中有两块空间分别存放"old","new",只不过"old"无法在访问,等待垃圾回收。

4.字符串拼接。

var a='100',b=100; var c=a+b,d=a-c; 
console.log(c);//100100 typeof(c)//string
console.log(d);//0 typeof(c)//number

5.Boolean(''),Boolean(0),Boolean(NaN),Boolean(null),Boolean(undefined)均返回false.

注意:  var s="0"; console.log(Boolean(s));//true

6.转换成字符串类型的三种方法  toSting(),  String(),  ""+str ,

几乎每一个值都有toString()方法,除了Null只有一个值null , Undefined只有一个值undefined

 console.log(typeof undefined);//undefined
 console.log(typeof null);//object

String()用于转换undefined和null

 console.log(toString(null) );//[object Undefined]
 console.log(String(null) );//null

7.转换成数值类型的三种方法 Number(),parseInt(),parseFloat()

var a="123",b="123a",c=11.1;
console.log(Number(b));//NaN    Number()如果要转换的字符串中有一个不是数值的字符,则返回NaN
console.log(Number(" "));//0
console.log(parseInt(b));//123
console.log(parseFloat(b));//123
console.log(parseInt(c));//11
console.log(parseFloat(c));//11.1

8.函数的返回值.若return ; 则返回undefined     若没有return  也返回undefined

function add() {
    var str=5;
}
console.log(add());//undefined

function add1() {
    var str=5;
    return ;
}
console.log(add1());//undefined

9.javaScript没有重载。

10.变量作用域问题。

f1();
console.log(c);//9
console.log(b);//9
console.log(a);//ReferenceError: a is not defined
function f1() {
    var a=b=c=9;
    console.log(a);//9
    console.log(b);//9
    console.log(c);//9
}

 11.1.函数是一种数据类型;2.函数可以作为另一个函数的参数

 12.浅拷贝:一种是把一个对象的地址给另一个对象,是他们的指向相同,两个对象用共同的属性和方法(堆中只有一块空间);另一种是把一个对象中的所有内容复制一份给另一个对象(堆中有两块空间)。

var o1={
    name:"lisi",
    age:20,
    sayHi:function () {
        console.log("hi");
    }
};
var o2=o1;//堆中只有一块空间
console.log(o2.name);//lisi
o2.sayHi();//hi

深拷贝:

猜你喜欢

转载自blog.csdn.net/wsymcxy/article/details/81481442
今日推荐