Web前端笔试题解析:JS闭包、字符串截取、数据类型判断

2星 需积分: 34 39 下载量 164 浏览量 更新于2024-09-11 收藏 14KB DOCX 举报
Web 前端笔试题及答案 本文档收集了多个 Web 前端笔试题和答案,涵盖 JavaScript、DOM 等多个领域,为 Web 前端开发者提供了有价值的学习和参考资源。 一、JS 闭包 JS 闭包是指函数能够记忆并访问其作用域中的变量,即使该函数已经返回。题目中给出了一个闭包的示例代码,用于测试闭包的理解。 答案:false 解释:在闭包中,g() 返回 false,因此条件语句 if(g()&&[]==![]) 成立,进入 if 块内,从而重新定义了 f 和 g 函数。最终,alert(f()) 输出 false。 二、截取字符串 题目要求截取字符串 "abcdefg" 的后三位 "efg"。解决方案是使用 JavaScript 的 substring() 方法,获取字符串的子串。 答案: var mytext = document.getElementById("text"); var myvalue = mytext.innerHTML; var jiequ = myvalue.substring(myvalue.length-3, myvalue.length); alert(jiequ) 解释:首先,获取 id 为 "text" 的元素,并将其 innerHTML 赋值给 myvalue 变量。然后,使用 substring() 方法截取 myvalue 的最后三位字符,赋值给 jiequ 变量。最后,alert(jiequ) 输出结果 "efg"。 三、数据类型检测 题目要求检测不同数据类型的 typeof 结果。 答案: alert(typeof(null)) // object alert(typeof(undefined)) // undefined alert(typeof(NaN)) // number alert(NaN==undefined) // false alert(NaN==NaN) // false var str = "123abc"; alert(typeof(str++)) // number alert(str) // string 解释:null 是一个对象,undefined 是一个未定义的值,NaN 是一个数字类型。 NaN==undefined 输出 false,因为 NaN 和 undefined 是不同的数据类型。str++ 先将字符串 "123abc" 转换为数字 123,然后自增为 124,输出结果为 number。 四、日期函数 题目要求编写一个日期函数 DateDemo,输出当前日期。 答案: function DateDemo(){ var d = new Date(); var s = "今天日期是:"; s += d.getMonth() + "/"; s += d.getDate() + "/"; s += d.getFullYear(); alert(s); } 解释:DateDemo 函数使用 new Date() 创建当前日期对象,然后使用 getMonth()、getDate() 和 getFullYear() 方法获取当前月、日和年份,最后输出当前日期字符串。