JavaScript 常见面试题分析( 一 )

2018-07-02  本文已影响22人  哼_

这篇文章完全是copy Nian糕 的文章,写这只是为了领会知识

01 JavaScript 中使用 typeof 能得到的类型有哪些?

这道题考察的是JS的变量类型,js的变量类型有 值类型引用类型 两种,
值类型包括 undefined 字符串 数字 布尔值
引用类型包括 对象 数组 函数

  1. null 是object 对象,一个空的指针,并没有指向任何真实的引用类型
  2. typeof 只能区分值类型的详细类型
  3. typeof 能区分函数
运行结果
02 什么时候用 === 什么时候用== ?

这道题考察的是强制类型转换, 而在 JS 当中,在进行字符串拼接 | == 运算符 | if 语句 | 逻辑运算时会发生类型转换

运行结果1
运行结果2
运行结果3

判断一个变量会被当做true 还是 false ,可以用两个!! 进行判断


运行结果4
在JQuery 源码中, 所有的 if 判断,都是使用 === , 除了下面这种情况, 这里相当于 obj.a===null || obj.a===undefined 的简写形式
if(obj.a == null){
    ...
}
03 JS中有哪些内置函数 ?

这道题考察的是数据封装类对象, 常见的内置函数有 Object Array Boolean Number String Function Date RegExp Error

04 JS 变量按照存储方式区分为哪些类型 ? 并描述其特点

// 值类型
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

特点: 值类型可以把数值分块存储在内存中 ; 引用类型则是好几个变量公用一个内存块, 他是一个变量指针的赋值,不是一个真正的拷贝.

05 如何理解JSON

JSON是一个数据格式,也是一个JS对象,JSON常用的两个API 如下

把对象转换成字符串
JSON.stringify ( { a : 10, b : 20 } )
把对象转换成对象
JSON.parse( ' { "a" : 10 , "b" : 20} ' )
06 如何准确判断一个变量是数组类型 ?
判断是否是数组类型
07 写一个原型链继承的例子
08 描述 new 一个对象的过程
  1. 创建一个新对象 ;
  2. this 指向这个新对象 ;
  3. 执行代码,就是对 this 赋值 ;
  4. 返回 this ;
function Human(age,name){
  this.age = age;
  this.name = name;
this.food = '年糕';
// return  this  默认有这一行代码
}
 var  h1 = new Human("李泽言",21);
var h2 = new Human ("白起",23);
递归
function rect(num){
  if num==1 return 1
  return num*rect(num-1)
}
返回结果
如果对递归还想有更深的理解,可以参考廖雪峰关于递归函数的解释
上一篇下一篇

猜你喜欢

热点阅读