首页 > 代码库 > js 面试知识点

js 面试知识点

基础           原型  原型链

                  作用域  闭包

                  异步  单线程

JS API        DOM操作

                   AJAX

                  事件绑定

开发环境    版本管理

                  模块化

                  打包工具

运行环境    页面渲染

                  性能优化

 

面试题

1.JS中使用 typeof 能得到的哪些类型?

    考点:JS变量类型

  • JS中有哪些内置函数
  • JS变量按照存储方式区分为哪些类型,并描述其特点

         值类型      内存地址 不会因为赋值而相互干预

         引用类型   指针  节省内存空间   可以无限制扩展属性

  • 如何理解JSON

知识点  变量类型  变量计算

变量类型  值类型 VS 引用类型(对象,数组,函数

typeof 运算符详解

typeof undefined  //undefined
typeof ‘abc‘   //string
typeof 123  //number
typeof true //boolean
typeof {} //object
typeof []  //object
typeof null //object (空的指针,定义了一个位置)
typeof console.log //function

/*typeof只能区分值类型的详细类型,对引用类型无能为力,能区分函数*/

 

/*JS中的内置函数 -- 数据封装类对象*/
Object
Array
Boolean
Number
String
Function
Date
RegExp
Error
/*内置对象*/
Math
JSON

 

//如何理解JSON
//一种数据格式,JSON只不过是一个JS对象而已

// 2个API
JSON.stringify({a:10,b:20})
JSON.parse(‘{"a":10,"b":20}‘) 

2.何时使用 == ,何时使用 === ?

   考点:强制类型转换

/* === 中没有类型转换*/
if(obj.a == null){
   /*
     对象的属性是否存在
这里相当于 obj.a === null || obj.a === undefined ,简写形式 这是jquery 源码中推荐写法 */ }

 除了这个之外,其他都用 ===  

值类型 会发生类型转换计算的情况

  • 字符串拼接
  • ==运算符
  • if语句
  • 逻辑运算  
/*字符串拼接*/
var a = 100 + 10  //110
var b = 100 + ‘10‘  //10010

/*==运算符*/
100 == ‘100‘  //true
0 == ‘‘  //true
null == undefined  //true

/*if语句*/
var a=ture
if(a){
  // ...  
}
var b=100
if(b){
  // ...  
}
var c=‘‘
if(c){
  // ...  
}
/*if()里会转成false的集中情况*/
/*0 NaN ‘‘ null undefined false*/ /*逻辑运算*/ console.log(10 && 0) //0 console.log(‘‘ || ‘abc‘) //abc console.log(!window.abc) //true //判断一个变量会被当成 true 还是 false var a=100 console.log(!!a)

  

3.window.onload 和 DOMContentLoaded 的区别?

   考点:浏览器渲染过程

4.用 JS 创建10个 <a> 标签,点击的时候弹出对应的序号

   考点:作用域

5.简述如何实现一个模块加载器,实现类似 require.js 的基本功能

   考点:JS模块化

6.实现数组的随机排序

   考点:JS基础算法

 

js 面试知识点