最近在面试,碰了很多壁,踩了很多坑。也发现了自己很多不足之处,过去的时间已经过去,没抓住的机会已经溜走。但是明天依然会到来,依然会有新的机会和生活。做好今天吧,期待明天。
总结了一些东西,拿给大家看看,也提醒自己,温故而知新。学海,真的是无涯的。
面试基础类要点(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
今天先写到这里吧,明天继续。共勉之。
网友评论