1 / 4
文档名称:

js笔试题.doc

格式:doc   大小:49KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

js笔试题.doc

上传人:drp539606 2019/5/7 文件大小:49 KB

下载得到文件列表

js笔试题.doc

文档介绍

文档介绍:?123456789101112varlength=10functionfn(){    alert()}varobj={    length:5,    method:function(fn){        fn()//?        arguments[0]()//?    }}(fn)这里的坑主要是arguments,我们知道取对象属于除了点操作符还可以用中括号,这里fn的scope是arguments,即fn内的this===arguments,调用时仅传了一个参数fn,因此length为1。 2,函数表达式具名(函数声明同时赋值给另一个变量)或函数声明立即执行时,名仅在该函数内可访问?123456~function(){    alert(typeofnext)//?    ~functionnext(){        alert(typeofnext)//?    }()}()外层匿名函数自执行,打印next,接着内层具名函数自执行。会发现具名的next仅在其自身函数体内可访问,即输出为function。外面是不可见的,typeof就为undefined了。(注:此题IE6/7/8中输出为functionfunction,标准浏览器为undefinedfunction)同样的情况也发生在将具名函数赋值给一个变量时,如下?1varfunc=functiona(){2345    alert(typeofa)}func()//?alert(typeofa)//?这条规则是标准中(ES3/ES5)都已明确指出,但IE6、7、8没有严格遵从。可参见w3help的分析或李松峰老师的翻译《命名函数表达式探秘》 3,给基本类型数据添加属性,不报错,但取值时是undefined?123a==4alert(a+)//?变量a为数字3,给其添加prop属性,值为4(奇怪吧在JS中这是允许的,且不会有语法错误)。然后alert出a+。结果是NaN。,3+undefined为NAN。举一反三,给字符串添加属性?123str='a'='b'alert(str+)//?结果呢? 4,隐式的全局变量?123vara=1functionfunc(){    a=b=24567}func()alert(a)alert(b)//? JS中不用var声明的变量默认是全局变量,而这里的连等使的情况更加隐蔽。这里的b是全局的,因此func外可以访问。 5,变量声明早于代码运行(ScopingandHoisting)