Quantcast
Channel: IT社区推荐资讯 - ITIndex.net
Viewing all articles
Browse latest Browse all 15843

总结javascript的那些怪癖

$
0
0

/**
 *
 * @authors Benjamin( http://blog.csdn.net/cuew1987)
 * @date    2013-11-29 14:04:00
 * @content 总结javascript的那些怪癖(trick)   
 */

/**
 * trick01:NaN是个数值
 * NaN:表示某个值不是数值,但其本身又是数值,且不等于其自身
 */

console.log(typeof NaN);//number
console.log(NaN == NaN);//false
console.log(NaN === NaN);//false

/**
 * trick02:Null是个对象
 * Null:javascript中的五大基本类型之一,它有个唯一的值null, 即它的字面量,定义为完全没有任何意义的值。null 不是任何对象的实例:
 */

console.log(typeof null);//Object
console.log(null instanceof Object);//false

/**
 * trick03:undefined
 * undefined:undefined并不是JavaScript中的保留字,尽管它有特殊的意义,并且是唯一的方法确定变量是否未定义,但是它可以定义为变量
 */

var Benjamin;
console.log(typeof Benjamin);//undefined
undefined = "My name is Benjamin";
console.log(undefined == Benjamin);//true

/**
 * trick04:函数可以执行自身
 * 情况一:jQuery代码的封装
 * 情况二:延迟函数中的应用
 */

//1.0
(function($){

})(jQuery);

//2.0
var name = "Benjamin";
setTimeout((function(name){
	return function(){
		console.log(name);//Benjamin
	}
})(name),1000);
var name = "Benjamin01";

//2.1,此种也是初学者和面试经常遇见的问题
var name = "Benjamin";
setTimeout(function(){
	console.log(name);//Benjamin01
},1000);
var name = "Benjamin01";

/**
 * trick05:隐似类型转换,如:{}+{} = ? or [] + [] = ?
 */

console.log({} + {});//[object Object][object Object]
console.log({"name":"Benjamin"
}+{"age":20
});//[object Object][object Object]
console.log([] + {}); //[object Object]
console.log({} + []); //[object Object]
console.log([] + []); //空字符串

说到类型转换,下面来看看那些最根本的东东,ECMASCRIPT 5.1中的类型转换和测试:

详细见博文: javascript中的那些类型转换(待...)

/**
 * trick06:等号(==)和不等号(!=)
 */

console.log(0   == false);//true
console.log(1   == true );//true
console.log(2   == true );//false
console.log("0" == false);//true
console.log("1" == true );//true
console.log("2" == true );//false
console.log(""  == 0    );//true
console.log(""  == false);//true
console.log("         " == 0    );  //true
console.log("         " == false);  //true
console.log("\n 123 \t" == 123  );  //true


 

作者:BJ_benjamin 发表于2013-11-30 23:12:25 原文链接
阅读:95 评论:0 查看评论

Viewing all articles
Browse latest Browse all 15843

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>