1.假设val已经声明,可定义为任何值。则下面js代码有可能输出的结果为:
console.log('Value is ' + (val != '0') ? 'define' : 'undefine');//define
解析:这道题一开始做的时候填的是Value is define,但是确实错误的,这是因为没有考虑到标识符运算的优先级,+的优先级高于三目运算符?所以相当于下面的执行。
var val;
var a=(val != '0');
var a='Value is ' +a;
var a=((a)? 'define' : 'undefine');
console.log(a);//define
2.下面程序的结果是?
console.log(([])?true:false); //true
console.log(([]==false?true:false));//true
console.log(({}==false)?true:false);//false
解析:
◎第一题是判断是否是真值,就是Booean([])为true.
◎第二三题涉及较多东西,晚点发篇文章补回。
3.如何把 7.25 四舍五入为最接近的整数?
Math.round(7.25);
解析:
◎Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数;
◎Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数;
◎Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数(这也是我们在数学课上学到的舍入规则)。
4.下面程序的结果是?
console.log(1+ "2"+"2");//"122"
console.log(1+ +"2"+"2");//"32"
console.log("A"- "B"+"2");//"NaN2"
console.log("A"- "B"+2);//"NaN"
解析:第二题中的 +"2"中的+相当于Number("2");
5.下面代码的执行结果是?
var arr=[];
arr[0]=0;
arr[1]=1;
arr.foo='c';
解析:arr是一个对象,arr.length和arr.foo是等价的都是lenth的属性。arr.length作用是数组方法。
6.javaScript的全局函数
解析:
decodeURI() 、decodeURIComponent() 、encodeURI() 、encodeURIComponent() 、escape() 、unescape()、eval()。