首页 > 代码库 > JS面试基础

JS面试基础

问题:

1.JS中typeof能够得到哪些类型?

考点:JS 的变量类型

2.何时用 双等于 == ?何时用 三等 ===?

考点:强制类型转换

3.window.onload 与 DOMContentLoaded的区别。

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

考点:作用域 

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

考点:JS的模块化 

6.实现数组的随机排序

考点:JS的基础算法。

 

1.变量分为值类型和引用类型。

var a = 100;

var b = a;

a = 200;

console.log(b);   //打印出来的是100;

 

var a = { age : 20 };

var b = a;

b.age = 21;

console.log(a.age);   // 打印出来的是21 

对象 数组 函数都是 引用类型 

typeof undefined    //undefined ;

typeof "ab"   //string 

typeof 123 //number 

typeof ture //boolean 

typeof 对于值类型是可以区分的 

 

typeof { }                      //object 

typeof [ ]                     //object 

typeof null                 //object           空指针 不指向任何的对象 

typeof console.log            //function 

typeof 区分值类型 但是不能区分引用类型 ,除了函数之外 其他的都不能区分,只是知道是对象类型 object 类型   ,另外引用类型可以无限制的扩展属性 

 

2 .  强制类型转换 

字符串拼接    ==(双等号)运算符      if语句    逻辑运算   都是可以强制类型转换的 

var a = 100 + 10   ;

console.log(a);   // 110  number 类型的 

 

var  b = 100 + "10"   ;

console.log(b);  //  “10010”  string 类型的 ,因为  +  号 ,做了轻质类型转换了,把数字变成了字符串,然后连接在一起了。

 

100 == " 100 "      //true ;

0  == " "       //true ;       空字符串 

null == undefined   //true ;   null  和  undefined  两个本身都可以转换成 false  ,所以可以相等  。

 

JS面试基础