2-1变量类型和计算
- 题目
- 知识点
- 解答
题目
- JS中使用typeof能得到那些类型
- 何时使用 === 何时使用 ==
- JS中有那些内置函数
- JS变量按照存储方式区分为那些类型,并描述其特点
- 如何理解JSON
知识点
- 变量类型
- 值类型vs引用类型
- 值类型 number bealoon
var log = function() {
console.log.apply(console, arguments)
}
var a = 100
var b = a
a = 200
log('b',b)
//结果 b 100
- 引用类型 对象,数组,函数,
var a = {age: 20}
var b = a
b.age = 21
log('a.age',a.age)
// a.age 21
值类型存值,引用类型存引用的地址
事例二a,b指向一处.
- typeof 运算符详解
typeof undefined
typeof 'abc'
typeof 123
typeof true
typeof {}
typeof []
typeof null
typeof console.log()
-
值类型,都能区分.
-
引用类型,只能区分函数.
-
变量计算-强制类型转换
- 字符串拼接
var a = 100 + 10
log('a', a)
var b = 100 + '10'
log('b', b)
b转换成了字符串
- == 运算符
100 == '100'
0 == ''
null = underfined
- 全是true
第一个100转字符串
第二第三全转false - 换===就不会出现这问题
- if语句
var a = true
if (a) {
}
var b = 100
if(b){
}
var c = ''
if (c){
}
- b转true
- c 转false
- 逻辑运算
- 何时使用 === 何时使用 ==
-
其他都三等.
-
内置函数--数据封装类对象
Object
Array
Boolean
Number
String
Function
Date
RegExp
Error
- 如何理解JSON
- JSON只不过是一个JS对象,数据存储格式
JSON.stringify({a:10,b:20}) 对象转字符串
JSON.parse('{"a":10,"b":20}') 字符串转对象
2-5 原型和原型链
题目
- 如何准备判断一个变量是数组类型
- 写一个原型链继承的例子
- 描述new一个对象的过程
- zepto(或者其他框架)源码中如何使用原型链
知识点
- 构造函数
- 原型规则和示例
- 原型链
-
构造函数
微信截图_20180115121649.png -
构造函数-扩展
-
var a = {} 其实是 var a = new Object()的语法糖
-
var a = [] 其实是 var a = new Array() 的语法糖
-
function Foo(){}其实是var Foo = new Function()
-
使用instanceof 判断一个函数是否是一个函数的构造函数
判断变量是否为数组 变量 instanceof Array
原型规则和示例
- 5条原型规则
- 原型规则是学习原型链的基础
- 所有的引用类型(数组,对象,函数), 都具有对象特性,既可以自由扩展属性(除null以外)
- 所有的引用类型(数组,对象,函数),都有一个proto属性,属性是一个普通的对象.
- 所有的函数,都有一个prototype属性,属性值也是一个普通的对象
- 所有的引用类型,proto属性值指向它的构造函数的"prototype"属性值
- 当试图得到一个对象的某个属性时,如果这个对象本身没有这个属性,那么回去他的proto(即他的构造函数的prototype)中寻找.
微信截图_20180115130457.png
微信截图_20180115131322.png本身没有就去隐士原型中找.
解题
- 如何准备判断一个变量是数组类型
var arr = []
arr instanceof Array //true
- 写一个原型链继承的例子
- 正式答案 封装DOM查询
function Animal()
{
this.eat = function(){
console.log('animal eat')
}
}
function Dog(){
this.bark = function(){
console.log('dog bark')
}
}
Dog.prototype = new Animal()
var hashiqi = new Dog()
- 描述new一个对象的过程
- 创建一个新对象
- this指向这个新对象
- 执行代码,即对this赋值
- 返回this
- zepto(或者其他框架)源码中如何使用原型链
再看一遍 2-12 ,写下elemt
网友评论