首页
HTML+CSS
JavaScript
Vue
WordPress
WP Functions
注册/登录
首页 > JavaScript > 正文

JS:几个有意思的小题

1、预编译环节,函数提升,后面的函数定义覆盖前面的函数:

var x = 1, y = z = 0;

function add(n) {
    return n = n+1;
}

y = add(x);

function add(n) {
    return n = n + 3;
}

z = add(x);

console.log(x);	// 1
console.log(y);	// 4
console.log(z);	// 4

2、关于 ==、===

undefined < 0     //false
undefined > 0     //false
undefined == 0    //false
null < 0          //false
null > 0          //false
null == 0         //false
null == undefined          //true 
null === undefined	//false
NaN == NaN    //false

{} == {}	// false
123 == 123	// true
"123" == "123"	// true
123 == "123"	// true
123 === "123"	// false

3、关于[]

console.log([] + 2);	// "2"
console.log(typeof([] + 2))	// string
console.log([] - 1);	// -1
console.log(typeof([] - 1))	// number
console.log([1] + 1);	// 11
console.log(typeof([] + 1))	// string
console.log([1,2] + 1);	// 相当于 string([1,2]) + 1 ==> "1,2" + 1 ==> "1,21"
console.log(typeof([1,2] + 1));	// string

4、typeof

var h = function a() {
    console.log(123);
    // 默认有这一句:return undefined
}

console.log( typeof h());	
console.log( typeof h)
  1. 函数不写return语句,相当于在函数末尾加上了 return undefined
  2. 第6句先要执行 h(),输出了123,返回undefined,然后再指向 typeof undefined,输出 undefined。
展开全部
分享到:

网友评论comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 2012-2013 Weesh Net Media
扫二维码
扫二维码
返回顶部