js练习题

js练习题

1.

var i = 0,j = 0;

for(;i<6,j<10;i++,j++){
      k = i + j;
};
console.log(k);  //18,逗号运算符只看最后一个运算

 

2.

fn1();
var fn1 = function(a){ alert(a); }  //fn1 is not a function
//变量域解析,fn1域解析一开始是为var fn1;但是并不知道他是什么类型,
//所以fn1()是不符合的

 

3.

var x = 1;
function fn(n){n = n+1};
y = fn(x);
console.log(y); //undefined ,函数没有返回值

 

4.

function fn1() {
      var a = 0;
      function fn2() {
          ++a;
          alert(a);
     }
     return fn2;
}
    fn1()(); //1
    var newFn = fn1();
    newFn();//1
    newFn();//2  //每次运行newFn,虽然fn2函数被垃圾回收了,但是他的父元素fn1并没有垃圾回收,所以a会加1变成2

 

5.

for(var i = 0; i < 5; i++) {
     setTimeout(function(i) {
         return function() {
             console.log(i);
     };
}(i), i * 1000);  //0,1,2,3,4
//运用了函数立即执行,所以并不会像定时器那有延迟执行

 

6.

console.log( (!+[]+[]+!+[]).length );  //'truetrue'.length; 8;
//这里的+是正运算符
// [] => '' => 0 先调用toString然后再调用toNumber
//就会变成 true + [] + true; => true + '' + true

 

7.

100['toString']['length'] 的结果是(1);

//'100'.toString();   toString默认会有一个10参数,10进制
//这里length方法是算的函数参数长度

 

8.

var arr = [1,2];
var arr2 = arr.concat(); //arr2 => [1,2]; 并不影响arr
arr2.push( arr.splice(1,0) );   //[1,2,[]];

//splice返回  包含被删除项目的新数组 这里没有删除一个,所以为[]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值