面试基础类要点总结

最近在面试,碰了很多壁,踩了很多坑。也发现了自己很多不足之处,过去的时间已经过去,没抓住的机会已经溜走。但是明天依然会到来,依然会有新的机会和生活。做好今天吧,期待明天。

总结了一些东西,拿给大家看看,也提醒自己,温故而知新。学海,真的是无涯的。

面试基础类要点(1)


一. 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

(2)引用类型包括:对象,数组和函数。

typeof  运算符
JS中使用typeof 能得到的哪些类型

typeof  undefined  // undefined   
typeof  'abc'  // string
typeof  123  // number 
typeof  true  // boolean
typeof  [ ]  // object
typeof  { }  // object
typeof  null  // objec
typeof  console.log  // function

前四个为值类型,后四个为引用类型.

二.变量计算 - 强制类型转换

1.字符串拼接
2.== 运算符
3.If 语句
4.逻辑运算

(1) 字符串拼接:

var  a = 100 + 10   // 110
var  b = 100 + '10' // 10010

(2)何时使用 == 何时使用 ===

if( obj.a == null ){
//这里相当于是 obj.a ===  null  || obj.a  ===  undefined , 简写形式
// 这是jquery 源码中推荐的写法 
}

== 要慎用,因为会导致强制类型转换,===就不会出现这种情况,是什么就是什么

何时使用 == 何时使用 ===
100 == '100'// true
0 == ''  // true
null  ==  undefined   // true

(3) if语句会执行强制类型转换

var  a = true 
if ( a ) {
//会执行
}

var  b =  100
if ( b ) {
//将100转换为布尔值 true 程序会执行
}

var  c  =  ''
if ( c ) {
//强制类型转换为false不执行,返回undefined
}
if 中会被转换成false的是 0 ,NaN, '' ,null ,false本身

逻辑运算符类型转换

console.log ( 10 && 0 )   // 0
console.log (''|| 'abc') // 'abc'
console.log  ( ! Window.abc )  // true

//判断一个变量会被当做 true 还是 false
var a = 100
console.log (!!a)

JS中都有哪些内置函数 -- 数据封装类对象

Object
Array
Boolea
Number
String
Function
Date
Regexp
Error

内置对象:math 和 json

如何理解JSON?
json 是一个数据格式,但同时是一个JS 对象,有两个常用的api
json stringify ({a:10, b:20}) 把对象变成字符串
json parse( '{ "a":10, "b":20} ') 把字符串变成对象

构造函数
如果是构造函数,首字母一定要大写,看到首字母大写,一般都是构造函数。

构造函数--扩展

var a = {  }  其实是 var a=new Object( ) 的语法糖
var a = [  ]  其实是 var a=new Array( ) 的语法糖
function Foo ( ) { ... } 其实是 var Foo = new function ( ... )

判断一个函数是否是一个变量的构造函数 使用instanceof
判断一个变量是否为“数组”: 变量 instanceof Array

今天先写到这里吧,明天继续。共勉之。

你可能感兴趣的:(面试基础类要点总结)