Javascript基础

下面这些题目说他是js中的基础,确实是基础,可不借助IDE工具的时候,谁又真正能做出几个......

alert(typeof(NaN));        //Number
	  alert(typeof(Infinity));   //Number,Infinity 属性用于存放表示正无穷大的数值。
	  alert(typeof(null));       //object
	  alert(typeof(undefined));  //undefined
	  
	  alert(parseInt("123abc"));            //123
	  alert(new String("abc") == "abc");    //true
	  alert(new String("abc") === "abc");   //false
	  
	  alert("abc" == "abc");                //true
	  alert("abc" === "abc");               //true


1、

var a = "123abc";
	  alert(typeof(a++));  //string
	  alert(a);            //Nan


2、

var a = "123abc";
		a.valueOf = function(){
			alert("***");   //不会执行到此函数 
			return parseInt(a);
		}
		alert(++a); 		//NaN
		alert(a-0); 		//NaN
var a = new String("123abc");
		a.valueOf = function(){
			alert("***");   //会执行到此函数 
			return parseInt(a);
		}
		alert(++a); 		//124
		alert(a-0); 		//124


3、

var a = new Object();
		a.toString = function(){
			alert("toString");
			return "123abc";
		}
		a.valueOf = function(){
			alert("valueOf");
			return parseInt(a);
		}
		alert(++a);
		alert(a-0);

		//执行结果:valueOf  toString  124  124
		//先进入valueOf方法 再进入toString方法


4、

var s = new String("abc");
		alert(typeof(s) == typeof("abc"));  //false   因为 typeof(s) 为object类型   typeof("abc"为string类型 
		alert(s === "abc");                 //false 
		alert(s.toString() == s); 


5、

var a = new Object();
		a.toString = function(){return "a"};
		var b = new Object();
		b.toString = function(){return "b"};
		alert(a>b);      //false 
		a.valueOf = function(){return 1};
		b.valueOf = function(){return 0};
		alert(a>b);     //true


 

原文地址:https://www.cnblogs.com/itmyhome/p/4131445.html