js面试题(一)

2018-05-23  本文已影响0人  苦茶_12138

1,

                var  x   =   1,

                if  ( function   f()  {} ){

                            x+=typeof   f;

                }

                console.log(x);       //  1undefined

           分析:  (1), ()为执行符号的一种,function f() 定义且执行,执行完之后,f()函数就没了,下面的f就是未定义;  一般情况下,未定义的变量直接使用会报错,typeof 是唯一一种不会报错的情况,结果为undefined,string类型.

                     (2),function f() {} 是一个函数,转换为布尔值为true,所以下面的f是未定义

2,

                var   a  =  ( 1-1 , 1+1 );        

                 console.log(a);    //2      逗号操作符    先计算逗号前面的结果,再计算后面的结果,把后面的结果return 出去

                  var  f  =  (

                            function   f()  {

                                    return  "1";

                            },

                            function   g()  {

                                    return   2;

                            }

                    )()

                   console.log(typeof f);  //number

3,

        给定一个字符串,求字符串的字节长度

        function  charcode(str){

                    var count= str.length;

                    for(var i=0;i<str.length;i++){

                               if(str[i].charCodeAt()>255){

                                        count+=1;

                                 }

                    }

                  return count;

          }

上一篇 下一篇

猜你喜欢

热点阅读