JavaScript面试题
文章目录
- JavaScript面试题
- 一、选择题
- 二、简答题
- 1、简述JavaScript常见的编程规范
- 2、简述null和undefined的区别
- 3、简述JS中数组的常见操作以及它们的含义
- 三、编程题
- 1、编写一个函数,实现字符串的翻转,如输入"123",得到结果"321"
- 2、编写代码,实现一个倒计时的核心代码
一、选择题
1、下列不是Date对象的操作函数的是( A )
A. getYear()
B. getMonth()
C. getDay()
D. getDate()
2、不是JavaScript语言特点的是( B )
A. 基于对象
B. 移动端优先
C. 事件驱动
D. 跨平台
3、哪些不是JavaScript基本类型( B )
A. String
B. Float
C. Number
D. Null
4、正则表达式符号\w表示的是( C )
A. 任意单个字符
B. 任意单个字母
C. 任意单个字母、数字、下划线
D. 任意单个字母、数字、下划线、$符号
5、我们可以在下列哪个 HTML 元素中放置 Javascript 代码?( B)
A.< javascript>
B. <script>
C. <scripting>
D. <js>
二、简答题
1、简述JavaScript常见的编程规范
- 尽量使用外链JS代码,达到和HTML代码分离的目的;
- 变量的命名见名知意、驼峰命名法
- 函数名称,见名知意、驼峰命名法
- 表达式中的运算符两侧添加空格
- 语法中选择结构和循环结构内部使用花括号包含、适当的代码缩进
2、简述null和undefined的区别
语法规范中null和undefined都可以用来表示无效数据
- null可以表示空值,是一个具体的数据,typeof查询类型object,Object.prototype.toString.call(null)查询类型Object Null
- undefined可以表示无效值,是一个具体的数据,typeof查询类型undefined,Object.prototype.toString.call(undefined)查询类型Object Undefined
3、简述JS中数组的常见操作以及它们的含义
JS语法规范中数组使用关键词Array表示,提供了大量的操作函数
arr.push() 末尾追加
arr.pop() 末尾删除
arr.unshift() 开头添加
arr.shift()开头删除
arr.splice() 添加、删除、替换
arr.sort() 排序
arr.reverse() 翻转
arr.indexOf() 查询位置
arr.slice() 截取
Array.isArray()判断是否数组
三、编程题
1、编写一个函数,实现字符串的翻转,如输入"123",得到结果"321"
/**
* 字符串翻转函数
*/
function reverse(str){
var tgt = ""
for(var i = str.length-1; i >= 0; i--){
tgt += str[i]
}
return tgt
}
/**
* 字符串翻转函数
*/
function reverse(str){
var arr = str.split("") // 拆分字符串
arr.reverse() // 数组翻转
var tgt = arr.join("") // 拼接数组
return tgt
}
2、编写代码,实现一个倒计时的核心代码
/**
* 倒计时函数
*/
function timer(targetTime){
var date = new Date() // 当前时间
var date2 = new Date(targetTime) // 未来某个时间
var tc = date2 - date // 时间差
var day = Math.floor(tc / (24*60*60*1000))
var hour = Math.floor(tc % (24*60*60*1000) / (60*60*1000))
var min = Math.floor(tc % (60*60*1000) / (60*1000))
var sec = Math.floor(tc % (60*1000)/1000)
return [day, hour, min, sec]
}