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]
}