1 定义
-
-
- 数值、字符串、布尔值这三种原型类型的值,在一定条件下也会自动转化为对象,也就是原始类型的包装对象。 -
- Number String Boolean -
- 包装对象的目的,使得语言都有一个通用的数据模型,其次是得原始类型的值也有可以调动自己的方法。 -
- 原始类型的值会自动当做包装对象调用,即调用包装对象的属性和方法。JS引擎糊自动将原始类型的值转换为包装对象实例,并在使用后立即销毁。 -
- 自动转换生成的包装对象是只读的,无法修改。 -
1 | var str = 'abc'; |
Classes
1 Class-Like structures in ecma5
1 | // property |
1
@@ -791,19 +784,19 @@1
-
+
- ECMA5 函数
+ ECMA5 标准库
-
+
@@ -811,12 +804,10 @@
- 1 概述
1.1 重复声明
-- 函数的声明会提升到函数定义时所在的作用域的头部。故同名函数会被后来的函数替代。
-
-1
2
3
4
5
6
7
8
function f(){
console.log('one');
}
f(); //two
function f(){
console.log('two');
}
f(); //two
+ 1 判断某个变量是否为对象
1
2
3
function isObject(value){
return value === Object(value);
}
+2 对象的键名
- more >>
+ more >>
@@ -830,7 +821,7 @@ 1
@@ -851,7 +842,7 @@ 1
@@ -973,19 +964,19 @@ 1
-
+
- ECMA5 this指针
+ ECMA5 CALL APPLY 模拟
-
+
@@ -993,14 +984,27 @@
- 1 概念
-- this 对象时运行时基于函数的执行环节绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。
-- 匿名函数的执行环节具有全局性,因此this指针对象通常指向window
-
+ 概念
+- 每个函数都包括两个非继承而来的方法 apply call
+- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
+- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
+
+
+- apply()
+- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrary实例,也可以是arguments对象。
-1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
+
+- call()
+- 参数必须逐个列出来
+
+
+
+call 模拟
+- 参数一一对应(没有做一些错误机制的判断处理)
+
+1
2
3
4
5
6
7
8
9
10
11
12
Function.prototype.myCall = function(){
let args = Array.from(arguments);
const context = args.shift() || window; // null -> window
context.callFun = this; // 将函数设置为该对象的一个属性
let result = !args ?context.callFun() : context.callFun(...args);
delete context.callFun;
return result;
}
- more >>
+ more >>
@@ -1014,7 +1018,7 @@ 1
@@ -1035,7 +1039,7 @@ 1
diff --git a/page/2/index.html b/page/2/index.html
index 15c9e6b..bbbb044 100644
--- a/page/2/index.html
+++ b/page/2/index.html
@@ -140,19 +140,19 @@ chochi
-
+
- ECMA5 标准库
+ ECMA5 函数
-
+
@@ -160,10 +160,12 @@
- 1 判断某个变量是否为对象
1
2
3
function isObject(value){
return value === Object(value);
}
-2 对象的键名
+ 1 概述
1.1 重复声明
+- 函数的声明会提升到函数定义时所在的作用域的头部。故同名函数会被后来的函数替代。
+
+1
2
3
4
5
6
7
8
function f(){
console.log('one');
}
f(); //two
function f(){
console.log('two');
}
f(); //two
- more >>
+ more >>
@@ -198,7 +200,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -228,19 +230,19 @@
+
- ECMA5 数组
+ ECMA5 包装对象
-
+
@@ -248,19 +250,21 @@
- 1 静态方法
1.1 判断是否为数组
-- 使用Array的静态方法
-
-1
Array.isArray( array )
-
-- 使用原型toString方法,返回的字符串第二个词表示构造函数
+
1 定义
+- 数值、字符串、布尔值这三种原型类型的值,在一定条件下也会自动转化为对象,也就是原始类型的包装对象。
+- Number String Boolean
+- 包装对象的目的,使得语言都有一个通用的数据模型,其次是得原始类型的值也有可以调动自己的方法。
+- 原始类型的值会自动当做包装对象调用,即调用包装对象的属性和方法。JS引擎糊自动将原始类型的值转换为包装对象实例,并在使用后立即销毁。
+- 自动转换生成的包装对象是只读的,无法修改。
+
+1
2
3
4
5
6
7
8
9
10
11
var str = 'abc';
str.length; // 3
// 等同于
var strObj = new String(str);
/*
String{
0:"1",1:"b",2;"c",length:3[[PrimitiveValue]]:"abc"
}
strObj.length;//3
*/
- more >>
+ more >>
-
+
@@ -290,7 +294,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -320,19 +324,19 @@
+
- ECMA5 CALL APPLY 模拟
+ ECMA5 this指针
-
+
@@ -340,27 +344,14 @@
- 概念
-- 每个函数都包括两个非继承而来的方法 apply call
-- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
-- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
-
-
-- apply()
-- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。
-
-
-- call()
-
-call 模拟
-- 参数一一对应
-
-1
2
3
4
5
6
7
8
Function.prototype.myCall = function(_context){
let context = _context || window;// null -> window
context.fn = this;
let args = [].slice.call(arguments,1,arguments.length);
let result = !args ?context.fn():context.fn(...args);
delete context.fn;
return result;
}
+1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
- more >>
+ more >>
@@ -395,7 +386,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -425,19 +416,19 @@
+
- ECMA6 类
+ ECMA5 数组
-
+
@@ -445,14 +436,19 @@
- Classes
1 Class-Like structures in ecma5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// property
function PersonType(name){
this.name = name;
}
// methods: be assigned to the prototype
// all instances of the object share the same function
PersonType.prototype.sayName = function(){
console.log(this.name);
}
let person = new PersonType('chochi');
person.sayName();
// person is a instance of obeject and PersonType
+ 1 静态方法
1.1 判断是否为数组
+- 使用Array的静态方法
+
+1
Array.isArray( array )
+
+
@@ -482,7 +478,7 @@ Class
diff --git a/tags/JS/index.html b/tags/JS/index.html
index 40f36c5..e00e43a 100644
--- a/tags/JS/index.html
+++ b/tags/JS/index.html
@@ -155,63 +155,14 @@ chochi
- ECMA5 数组
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ECMA5 this指针
+ ECMA5 对象
@@ -253,14 +204,14 @@
- ECMA5 对象
+ ECMA5 函数
@@ -302,14 +253,14 @@
- ECMA5 函数
+ ECMA5 包装对象
@@ -351,14 +302,14 @@
- ECMA5 标准库
+ ECMA6 类
@@ -400,14 +351,14 @@
- ECMA5 CALL APPLY 模拟
+ ECMA5 数组
@@ -449,14 +400,14 @@
- ECMA5 包装对象
+ ECMA5 面向对象编程
@@ -498,14 +449,14 @@
- ECMA6 类
+ ECMA5 this指针
@@ -547,14 +498,14 @@
- ECMA5 面向对象编程
+ ECMA5 字符串
@@ -596,14 +547,14 @@
- ECMA5 字符串
+ ECMA5 数据格式
@@ -644,10 +595,6 @@
-
-
- ECMA5 函数 + ECMA5 标准库
- + @@ -811,12 +804,10 @@
- 1 概述
1.1 重复声明
-- 函数的声明会提升到函数定义时所在的作用域的头部。故同名函数会被后来的函数替代。
-
-1
2
3
4
5
6
7
8
function f(){
console.log('one');
}
f(); //two
function f(){
console.log('two');
}
f(); //two
+ 1 判断某个变量是否为对象
1
2
3
function isObject(value){
return value === Object(value);
}
+2 对象的键名
- more >>
+ more >>
@@ -830,7 +821,7 @@ 1
@@ -851,7 +842,7 @@ 1
@@ -973,19 +964,19 @@ 1
-
+
- ECMA5 this指针
+ ECMA5 CALL APPLY 模拟
-
+
@@ -993,14 +984,27 @@
- 1 概念
-- this 对象时运行时基于函数的执行环节绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。
-- 匿名函数的执行环节具有全局性,因此this指针对象通常指向window
-
+ 概念
+- 每个函数都包括两个非继承而来的方法 apply call
+- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
+- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
+
+
+- apply()
+- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrary实例,也可以是arguments对象。
-1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
+
+- call()
+- 参数必须逐个列出来
+
+
+
+call 模拟
+- 参数一一对应(没有做一些错误机制的判断处理)
+
+1
2
3
4
5
6
7
8
9
10
11
12
Function.prototype.myCall = function(){
let args = Array.from(arguments);
const context = args.shift() || window; // null -> window
context.callFun = this; // 将函数设置为该对象的一个属性
let result = !args ?context.callFun() : context.callFun(...args);
delete context.callFun;
return result;
}
- more >>
+ more >>
@@ -1014,7 +1018,7 @@ 1
@@ -1035,7 +1039,7 @@ 1
diff --git a/page/2/index.html b/page/2/index.html
index 15c9e6b..bbbb044 100644
--- a/page/2/index.html
+++ b/page/2/index.html
@@ -140,19 +140,19 @@ chochi
-
+
- ECMA5 标准库
+ ECMA5 函数
-
+
@@ -160,10 +160,12 @@
- 1 判断某个变量是否为对象
1
2
3
function isObject(value){
return value === Object(value);
}
-2 对象的键名
+ 1 概述
1.1 重复声明
+- 函数的声明会提升到函数定义时所在的作用域的头部。故同名函数会被后来的函数替代。
+
+1
2
3
4
5
6
7
8
function f(){
console.log('one');
}
f(); //two
function f(){
console.log('two');
}
f(); //two
- more >>
+ more >>
@@ -198,7 +200,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -228,19 +230,19 @@
+
- ECMA5 数组
+ ECMA5 包装对象
-
+
@@ -248,19 +250,21 @@
- 1 静态方法
1.1 判断是否为数组
-- 使用Array的静态方法
-
-1
Array.isArray( array )
-
-- 使用原型toString方法,返回的字符串第二个词表示构造函数
+
1 定义
+- 数值、字符串、布尔值这三种原型类型的值,在一定条件下也会自动转化为对象,也就是原始类型的包装对象。
+- Number String Boolean
+- 包装对象的目的,使得语言都有一个通用的数据模型,其次是得原始类型的值也有可以调动自己的方法。
+- 原始类型的值会自动当做包装对象调用,即调用包装对象的属性和方法。JS引擎糊自动将原始类型的值转换为包装对象实例,并在使用后立即销毁。
+- 自动转换生成的包装对象是只读的,无法修改。
+
+1
2
3
4
5
6
7
8
9
10
11
var str = 'abc';
str.length; // 3
// 等同于
var strObj = new String(str);
/*
String{
0:"1",1:"b",2;"c",length:3[[PrimitiveValue]]:"abc"
}
strObj.length;//3
*/
- more >>
+ more >>
-
+
@@ -290,7 +294,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -320,19 +324,19 @@
+
- ECMA5 CALL APPLY 模拟
+ ECMA5 this指针
-
+
@@ -340,27 +344,14 @@
- 概念
-- 每个函数都包括两个非继承而来的方法 apply call
-- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
-- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
-
-
-- apply()
-- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。
-
-
-- call()
-
-call 模拟
-- 参数一一对应
-
-1
2
3
4
5
6
7
8
Function.prototype.myCall = function(_context){
let context = _context || window;// null -> window
context.fn = this;
let args = [].slice.call(arguments,1,arguments.length);
let result = !args ?context.fn():context.fn(...args);
delete context.fn;
return result;
}
+1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
- more >>
+ more >>
@@ -395,7 +386,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -425,19 +416,19 @@
+
- ECMA6 类
+ ECMA5 数组
-
+
@@ -445,14 +436,19 @@
- Classes
1 Class-Like structures in ecma5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// property
function PersonType(name){
this.name = name;
}
// methods: be assigned to the prototype
// all instances of the object share the same function
PersonType.prototype.sayName = function(){
console.log(this.name);
}
let person = new PersonType('chochi');
person.sayName();
// person is a instance of obeject and PersonType
+ 1 静态方法
1.1 判断是否为数组
+- 使用Array的静态方法
+
+1
Array.isArray( array )
+
+
@@ -482,7 +478,7 @@ Class
diff --git a/tags/JS/index.html b/tags/JS/index.html
index 40f36c5..e00e43a 100644
--- a/tags/JS/index.html
+++ b/tags/JS/index.html
@@ -155,63 +155,14 @@ chochi
- ECMA5 数组
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ECMA5 this指针
+ ECMA5 对象
@@ -253,14 +204,14 @@
- ECMA5 对象
+ ECMA5 函数
@@ -302,14 +253,14 @@
- ECMA5 函数
+ ECMA5 包装对象
@@ -351,14 +302,14 @@
- ECMA5 标准库
+ ECMA6 类
@@ -400,14 +351,14 @@
- ECMA5 CALL APPLY 模拟
+ ECMA5 数组
@@ -449,14 +400,14 @@
- ECMA5 包装对象
+ ECMA5 面向对象编程
@@ -498,14 +449,14 @@
- ECMA6 类
+ ECMA5 this指针
@@ -547,14 +498,14 @@
- ECMA5 面向对象编程
+ ECMA5 字符串
@@ -596,14 +547,14 @@
- ECMA5 字符串
+ ECMA5 数据格式
@@ -644,10 +595,6 @@
-
-
1 概述
1.1 重复声明
-
-
- 函数的声明会提升到函数定义时所在的作用域的头部。故同名函数会被后来的函数替代。 -
1 | function f(){ |
1 判断某个变量是否为对象
1 | function isObject(value){ |
2 对象的键名
- more >> + more >> @@ -830,7 +821,7 @@1
@@ -851,7 +842,7 @@ 1
@@ -973,19 +964,19 @@ 1
-
+
- ECMA5 this指针
+ ECMA5 CALL APPLY 模拟
-
+
@@ -993,14 +984,27 @@
- 1 概念
-- this 对象时运行时基于函数的执行环节绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。
-- 匿名函数的执行环节具有全局性,因此this指针对象通常指向window
-
+ 概念
+- 每个函数都包括两个非继承而来的方法 apply call
+- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
+- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
+
+
+- apply()
+- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrary实例,也可以是arguments对象。
-1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
+
+- call()
+- 参数必须逐个列出来
+
+
+
+call 模拟
+- 参数一一对应(没有做一些错误机制的判断处理)
+
+1
2
3
4
5
6
7
8
9
10
11
12
Function.prototype.myCall = function(){
let args = Array.from(arguments);
const context = args.shift() || window; // null -> window
context.callFun = this; // 将函数设置为该对象的一个属性
let result = !args ?context.callFun() : context.callFun(...args);
delete context.callFun;
return result;
}
- more >>
+ more >>
@@ -1014,7 +1018,7 @@ 1
@@ -1035,7 +1039,7 @@ 1
diff --git a/page/2/index.html b/page/2/index.html
index 15c9e6b..bbbb044 100644
--- a/page/2/index.html
+++ b/page/2/index.html
@@ -140,19 +140,19 @@ chochi
-
+
- ECMA5 标准库
+ ECMA5 函数
-
+
@@ -160,10 +160,12 @@
- 1 判断某个变量是否为对象
1
2
3
function isObject(value){
return value === Object(value);
}
-2 对象的键名
+ 1 概述
1.1 重复声明
+- 函数的声明会提升到函数定义时所在的作用域的头部。故同名函数会被后来的函数替代。
+
+1
2
3
4
5
6
7
8
function f(){
console.log('one');
}
f(); //two
function f(){
console.log('two');
}
f(); //two
- more >>
+ more >>
@@ -198,7 +200,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -228,19 +230,19 @@
+
- ECMA5 数组
+ ECMA5 包装对象
-
+
@@ -248,19 +250,21 @@
- 1 静态方法
1.1 判断是否为数组
-- 使用Array的静态方法
-
-1
Array.isArray( array )
-
-- 使用原型toString方法,返回的字符串第二个词表示构造函数
+
1 定义
+- 数值、字符串、布尔值这三种原型类型的值,在一定条件下也会自动转化为对象,也就是原始类型的包装对象。
+- Number String Boolean
+- 包装对象的目的,使得语言都有一个通用的数据模型,其次是得原始类型的值也有可以调动自己的方法。
+- 原始类型的值会自动当做包装对象调用,即调用包装对象的属性和方法。JS引擎糊自动将原始类型的值转换为包装对象实例,并在使用后立即销毁。
+- 自动转换生成的包装对象是只读的,无法修改。
+
+1
2
3
4
5
6
7
8
9
10
11
var str = 'abc';
str.length; // 3
// 等同于
var strObj = new String(str);
/*
String{
0:"1",1:"b",2;"c",length:3[[PrimitiveValue]]:"abc"
}
strObj.length;//3
*/
- more >>
+ more >>
-
+
@@ -290,7 +294,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -320,19 +324,19 @@
+
- ECMA5 CALL APPLY 模拟
+ ECMA5 this指针
-
+
@@ -340,27 +344,14 @@
- 概念
-- 每个函数都包括两个非继承而来的方法 apply call
-- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
-- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
-
-
-- apply()
-- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。
-
-
-- call()
-
-call 模拟
-- 参数一一对应
-
-1
2
3
4
5
6
7
8
Function.prototype.myCall = function(_context){
let context = _context || window;// null -> window
context.fn = this;
let args = [].slice.call(arguments,1,arguments.length);
let result = !args ?context.fn():context.fn(...args);
delete context.fn;
return result;
}
+1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
- more >>
+ more >>
@@ -395,7 +386,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -425,19 +416,19 @@
+
- ECMA6 类
+ ECMA5 数组
-
+
@@ -445,14 +436,19 @@
- Classes
1 Class-Like structures in ecma5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// property
function PersonType(name){
this.name = name;
}
// methods: be assigned to the prototype
// all instances of the object share the same function
PersonType.prototype.sayName = function(){
console.log(this.name);
}
let person = new PersonType('chochi');
person.sayName();
// person is a instance of obeject and PersonType
+ 1 静态方法
1.1 判断是否为数组
+- 使用Array的静态方法
+
+1
Array.isArray( array )
+
+
@@ -482,7 +478,7 @@ Class
diff --git a/tags/JS/index.html b/tags/JS/index.html
index 40f36c5..e00e43a 100644
--- a/tags/JS/index.html
+++ b/tags/JS/index.html
@@ -155,63 +155,14 @@ chochi
- ECMA5 数组
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ECMA5 this指针
+ ECMA5 对象
@@ -253,14 +204,14 @@
- ECMA5 对象
+ ECMA5 函数
@@ -302,14 +253,14 @@
- ECMA5 函数
+ ECMA5 包装对象
@@ -351,14 +302,14 @@
- ECMA5 标准库
+ ECMA6 类
@@ -400,14 +351,14 @@
- ECMA5 CALL APPLY 模拟
+ ECMA5 数组
@@ -449,14 +400,14 @@
- ECMA5 包装对象
+ ECMA5 面向对象编程
@@ -498,14 +449,14 @@
- ECMA6 类
+ ECMA5 this指针
@@ -547,14 +498,14 @@
- ECMA5 面向对象编程
+ ECMA5 字符串
@@ -596,14 +547,14 @@
- ECMA5 字符串
+ ECMA5 数据格式
@@ -644,10 +595,6 @@
-
-
- ECMA5 this指针 + ECMA5 CALL APPLY 模拟
- + @@ -993,14 +984,27 @@
- 1 概念
-- this 对象时运行时基于函数的执行环节绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。
-- 匿名函数的执行环节具有全局性,因此this指针对象通常指向window
-
+ 概念
+- 每个函数都包括两个非继承而来的方法 apply call
+- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
+- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
+
+
+- apply()
+- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrary实例,也可以是arguments对象。
-1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
+
+- call()
+- 参数必须逐个列出来
+
+
+
+call 模拟
+- 参数一一对应(没有做一些错误机制的判断处理)
+
+1
2
3
4
5
6
7
8
9
10
11
12
Function.prototype.myCall = function(){
let args = Array.from(arguments);
const context = args.shift() || window; // null -> window
context.callFun = this; // 将函数设置为该对象的一个属性
let result = !args ?context.callFun() : context.callFun(...args);
delete context.callFun;
return result;
}
- more >>
+ more >>
@@ -1014,7 +1018,7 @@ 1
@@ -1035,7 +1039,7 @@ 1
diff --git a/page/2/index.html b/page/2/index.html
index 15c9e6b..bbbb044 100644
--- a/page/2/index.html
+++ b/page/2/index.html
@@ -140,19 +140,19 @@ chochi
-
+
- ECMA5 标准库
+ ECMA5 函数
-
+
@@ -160,10 +160,12 @@
- 1 判断某个变量是否为对象
1
2
3
function isObject(value){
return value === Object(value);
}
-2 对象的键名
+ 1 概述
1.1 重复声明
+- 函数的声明会提升到函数定义时所在的作用域的头部。故同名函数会被后来的函数替代。
+
+1
2
3
4
5
6
7
8
function f(){
console.log('one');
}
f(); //two
function f(){
console.log('two');
}
f(); //two
- more >>
+ more >>
@@ -198,7 +200,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -228,19 +230,19 @@
+
- ECMA5 数组
+ ECMA5 包装对象
-
+
@@ -248,19 +250,21 @@
- 1 静态方法
1.1 判断是否为数组
-- 使用Array的静态方法
-
-1
Array.isArray( array )
-
-- 使用原型toString方法,返回的字符串第二个词表示构造函数
+
1 定义
+- 数值、字符串、布尔值这三种原型类型的值,在一定条件下也会自动转化为对象,也就是原始类型的包装对象。
+- Number String Boolean
+- 包装对象的目的,使得语言都有一个通用的数据模型,其次是得原始类型的值也有可以调动自己的方法。
+- 原始类型的值会自动当做包装对象调用,即调用包装对象的属性和方法。JS引擎糊自动将原始类型的值转换为包装对象实例,并在使用后立即销毁。
+- 自动转换生成的包装对象是只读的,无法修改。
+
+1
2
3
4
5
6
7
8
9
10
11
var str = 'abc';
str.length; // 3
// 等同于
var strObj = new String(str);
/*
String{
0:"1",1:"b",2;"c",length:3[[PrimitiveValue]]:"abc"
}
strObj.length;//3
*/
- more >>
+ more >>
-
+
@@ -290,7 +294,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -320,19 +324,19 @@
+
- ECMA5 CALL APPLY 模拟
+ ECMA5 this指针
-
+
@@ -340,27 +344,14 @@
- 概念
-- 每个函数都包括两个非继承而来的方法 apply call
-- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值
-- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
-
-
-- apply()
-- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。
-
-
-- call()
-
-call 模拟
-- 参数一一对应
-
-1
2
3
4
5
6
7
8
Function.prototype.myCall = function(_context){
let context = _context || window;// null -> window
context.fn = this;
let args = [].slice.call(arguments,1,arguments.length);
let result = !args ?context.fn():context.fn(...args);
delete context.fn;
return result;
}
+1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
- more >>
+ more >>
@@ -395,7 +386,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -425,19 +416,19 @@
+
- ECMA6 类
+ ECMA5 数组
-
+
@@ -445,14 +436,19 @@
- Classes
1 Class-Like structures in ecma5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// property
function PersonType(name){
this.name = name;
}
// methods: be assigned to the prototype
// all instances of the object share the same function
PersonType.prototype.sayName = function(){
console.log(this.name);
}
let person = new PersonType('chochi');
person.sayName();
// person is a instance of obeject and PersonType
+ 1 静态方法
1.1 判断是否为数组
+- 使用Array的静态方法
+
+1
Array.isArray( array )
+
+
@@ -482,7 +478,7 @@ Class
diff --git a/tags/JS/index.html b/tags/JS/index.html
index 40f36c5..e00e43a 100644
--- a/tags/JS/index.html
+++ b/tags/JS/index.html
@@ -155,63 +155,14 @@ chochi
- ECMA5 数组
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ECMA5 this指针
+ ECMA5 对象
@@ -253,14 +204,14 @@
- ECMA5 对象
+ ECMA5 函数
@@ -302,14 +253,14 @@
- ECMA5 函数
+ ECMA5 包装对象
@@ -351,14 +302,14 @@
- ECMA5 标准库
+ ECMA6 类
@@ -400,14 +351,14 @@
- ECMA5 CALL APPLY 模拟
+ ECMA5 数组
@@ -449,14 +400,14 @@
- ECMA5 包装对象
+ ECMA5 面向对象编程
@@ -498,14 +449,14 @@
- ECMA6 类
+ ECMA5 this指针
@@ -547,14 +498,14 @@
- ECMA5 面向对象编程
+ ECMA5 字符串
@@ -596,14 +547,14 @@
- ECMA5 字符串
+ ECMA5 数据格式
@@ -644,10 +595,6 @@
-
-
1 概念
-
-
- this 对象时运行时基于函数的执行环节绑定的,在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。 -
- 匿名函数的执行环节具有全局性,因此this指针对象通常指向window - +
- 每个函数都包括两个非继承而来的方法 apply call +
- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值 +
- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
+ - apply()
-
+
- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrary实例,也可以是arguments对象。
+1
2
3
4
5
6
7
8
9
10let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
+ - call()
-
+
- 参数必须逐个列出来 +
+ - 参数一一对应(没有做一些错误机制的判断处理) +
- 函数的声明会提升到函数定义时所在的作用域的头部。故同名函数会被后来的函数替代。 +
- 使用Array的静态方法 -
- 使用原型toString方法,返回的字符串第二个词表示构造函数
+
1 定义
-
+
- 数值、字符串、布尔值这三种原型类型的值,在一定条件下也会自动转化为对象,也就是原始类型的包装对象。 +
- Number String Boolean +
- 包装对象的目的,使得语言都有一个通用的数据模型,其次是得原始类型的值也有可以调动自己的方法。 +
- 原始类型的值会自动当做包装对象调用,即调用包装对象的属性和方法。JS引擎糊自动将原始类型的值转换为包装对象实例,并在使用后立即销毁。 +
- 自动转换生成的包装对象是只读的,无法修改。 +
- more >> + more >> -1
2
3
4
5
6
7
8
9
10
11var str = 'abc';
str.length; // 3
// 等同于
var strObj = new String(str);
/*
String{
0:"1",1:"b",2;"c",length:3[[PrimitiveValue]]:"abc"
}
strObj.length;//3
*/ - 每个函数都包括两个非继承而来的方法 apply call -
- 在特定的作用域中调用函数,实际上等于设置函数体内this对象的值 -
- 看出 call 和 apply 是为了动态改变 this 而出现的
区别
- - apply()
-
-
- 接受两个参数,第一个是运行函数的作用域,第二个是参数数组,参数数组可以用arrar实例,也可以是arguments对象。 -
- - call() -
- 参数一一对应 -
- 使用Array的静态方法 +
概念
-
+
-
+
call 模拟
-
+
1 | Function.prototype.myCall = function(){ |
1
@@ -1035,7 +1039,7 @@ 1
diff --git a/page/2/index.html b/page/2/index.html
index 15c9e6b..bbbb044 100644
--- a/page/2/index.html
+++ b/page/2/index.html
@@ -140,19 +140,19 @@ chochi
-
+
- ECMA5 标准库 + ECMA5 函数
- + @@ -160,10 +160,12 @@
- 1 判断某个变量是否为对象
1
2
3
function isObject(value){
return value === Object(value);
}
-2 对象的键名
+ 1 概述
1.1 重复声明
+
+1
2
3
4
5
6
7
8
function f(){
console.log('one');
}
f(); //two
function f(){
console.log('two');
}
f(); //two
- more >>
+ more >>
@@ -198,7 +200,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -228,19 +230,19 @@
+
- ECMA5 数组
+ ECMA5 包装对象
-
+
@@ -248,19 +250,21 @@
- 1 静态方法
1.1 判断是否为数组
-
-1
Array.isArray( array )
-
-
+
@@ -290,7 +294,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -320,19 +324,19 @@
+
- ECMA5 CALL APPLY 模拟
+ ECMA5 this指针
-
+
@@ -340,27 +344,14 @@
- 概念
-
-
-
-call 模拟
-
-1
2
3
4
5
6
7
8
Function.prototype.myCall = function(_context){
let context = _context || window;// null -> window
context.fn = this;
let args = [].slice.call(arguments,1,arguments.length);
let result = !args ?context.fn():context.fn(...args);
delete context.fn;
return result;
}
+1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
- more >>
+ more >>
@@ -395,7 +386,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -425,19 +416,19 @@
+
- ECMA6 类
+ ECMA5 数组
-
+
@@ -445,14 +436,19 @@
- Classes
1 Class-Like structures in ecma5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// property
function PersonType(name){
this.name = name;
}
// methods: be assigned to the prototype
// all instances of the object share the same function
PersonType.prototype.sayName = function(){
console.log(this.name);
}
let person = new PersonType('chochi');
person.sayName();
// person is a instance of obeject and PersonType
+ 1 静态方法
1.1 判断是否为数组
+
+1
Array.isArray( array )
+
+
@@ -482,7 +478,7 @@ Class
diff --git a/tags/JS/index.html b/tags/JS/index.html
index 40f36c5..e00e43a 100644
--- a/tags/JS/index.html
+++ b/tags/JS/index.html
@@ -155,63 +155,14 @@ chochi
- ECMA5 数组
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ECMA5 this指针
+ ECMA5 对象
@@ -253,14 +204,14 @@
- ECMA5 对象
+ ECMA5 函数
@@ -302,14 +253,14 @@
- ECMA5 函数
+ ECMA5 包装对象
@@ -351,14 +302,14 @@
- ECMA5 标准库
+ ECMA6 类
@@ -400,14 +351,14 @@
- ECMA5 CALL APPLY 模拟
+ ECMA5 数组
@@ -449,14 +400,14 @@
- ECMA5 包装对象
+ ECMA5 面向对象编程
@@ -498,14 +449,14 @@
- ECMA6 类
+ ECMA5 this指针
@@ -547,14 +498,14 @@
- ECMA5 面向对象编程
+ ECMA5 字符串
@@ -596,14 +547,14 @@
- ECMA5 字符串
+ ECMA5 数据格式
@@ -644,10 +595,6 @@
-
-
1 判断某个变量是否为对象
1 | function isObject(value){ |
2 对象的键名
+1 概述
1.1 重复声明
-
+
1 | function f(){ |
- 展开全文 >>
+ 展开全文 >>
@@ -228,19 +230,19 @@
+
- ECMA5 数组
+ ECMA5 包装对象
-
+
@@ -248,19 +250,21 @@
- 1 静态方法
1.1 判断是否为数组
-
-1
Array.isArray( array )
-
-
+
@@ -290,7 +294,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -320,19 +324,19 @@
+
- ECMA5 CALL APPLY 模拟
+ ECMA5 this指针
-
+
@@ -340,27 +344,14 @@
- 概念
-
-
-
-call 模拟
-
-1
2
3
4
5
6
7
8
Function.prototype.myCall = function(_context){
let context = _context || window;// null -> window
context.fn = this;
let args = [].slice.call(arguments,1,arguments.length);
let result = !args ?context.fn():context.fn(...args);
delete context.fn;
return result;
}
+1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
- more >>
+ more >>
@@ -395,7 +386,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -425,19 +416,19 @@
+
- ECMA6 类
+ ECMA5 数组
-
+
@@ -445,14 +436,19 @@
- Classes
1 Class-Like structures in ecma5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// property
function PersonType(name){
this.name = name;
}
// methods: be assigned to the prototype
// all instances of the object share the same function
PersonType.prototype.sayName = function(){
console.log(this.name);
}
let person = new PersonType('chochi');
person.sayName();
// person is a instance of obeject and PersonType
+ 1 静态方法
1.1 判断是否为数组
+
+1
Array.isArray( array )
+
+
@@ -482,7 +478,7 @@ Class
diff --git a/tags/JS/index.html b/tags/JS/index.html
index 40f36c5..e00e43a 100644
--- a/tags/JS/index.html
+++ b/tags/JS/index.html
@@ -155,63 +155,14 @@ chochi
- ECMA5 数组
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ECMA5 this指针
+ ECMA5 对象
@@ -253,14 +204,14 @@
- ECMA5 对象
+ ECMA5 函数
@@ -302,14 +253,14 @@
- ECMA5 函数
+ ECMA5 包装对象
@@ -351,14 +302,14 @@
- ECMA5 标准库
+ ECMA6 类
@@ -400,14 +351,14 @@
- ECMA5 CALL APPLY 模拟
+ ECMA5 数组
@@ -449,14 +400,14 @@
- ECMA5 包装对象
+ ECMA5 面向对象编程
@@ -498,14 +449,14 @@
- ECMA6 类
+ ECMA5 this指针
@@ -547,14 +498,14 @@
- ECMA5 面向对象编程
+ ECMA5 字符串
@@ -596,14 +547,14 @@
- ECMA5 字符串
+ ECMA5 数据格式
@@ -644,10 +595,6 @@
-
-
- ECMA5 数组 + ECMA5 包装对象
- + @@ -248,19 +250,21 @@
- 1 静态方法
1.1 判断是否为数组
-
-1
Array.isArray( array )
-
-
+
1 静态方法
1.1 判断是否为数组
-
-
1 | Array.isArray( array ) |
-
-
@@ -290,7 +294,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -320,19 +324,19 @@
- 展开全文 >>
+ 展开全文 >>
@@ -320,19 +324,19 @@
+
- ECMA5 CALL APPLY 模拟
+ ECMA5 this指针
-
+
@@ -340,27 +344,14 @@
- 概念
-
-
-
-call 模拟
-
-1
2
3
4
5
6
7
8
Function.prototype.myCall = function(_context){
let context = _context || window;// null -> window
context.fn = this;
let args = [].slice.call(arguments,1,arguments.length);
let result = !args ?context.fn():context.fn(...args);
delete context.fn;
return result;
}
+1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
- more >>
+ more >>
@@ -395,7 +386,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -425,19 +416,19 @@
+
- ECMA6 类
+ ECMA5 数组
-
+
@@ -445,14 +436,19 @@
- Classes
1 Class-Like structures in ecma5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// property
function PersonType(name){
this.name = name;
}
// methods: be assigned to the prototype
// all instances of the object share the same function
PersonType.prototype.sayName = function(){
console.log(this.name);
}
let person = new PersonType('chochi');
person.sayName();
// person is a instance of obeject and PersonType
+ 1 静态方法
1.1 判断是否为数组
+
+1
Array.isArray( array )
+
+
@@ -482,7 +478,7 @@ Class
diff --git a/tags/JS/index.html b/tags/JS/index.html
index 40f36c5..e00e43a 100644
--- a/tags/JS/index.html
+++ b/tags/JS/index.html
@@ -155,63 +155,14 @@ chochi
- ECMA5 数组
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ECMA5 this指针
+ ECMA5 对象
@@ -253,14 +204,14 @@
- ECMA5 对象
+ ECMA5 函数
@@ -302,14 +253,14 @@
- ECMA5 函数
+ ECMA5 包装对象
@@ -351,14 +302,14 @@
- ECMA5 标准库
+ ECMA6 类
@@ -400,14 +351,14 @@
- ECMA5 CALL APPLY 模拟
+ ECMA5 数组
@@ -449,14 +400,14 @@
- ECMA5 包装对象
+ ECMA5 面向对象编程
@@ -498,14 +449,14 @@
- ECMA6 类
+ ECMA5 this指针
@@ -547,14 +498,14 @@
- ECMA5 面向对象编程
+ ECMA5 字符串
@@ -596,14 +547,14 @@
- ECMA5 字符串
+ ECMA5 数据格式
@@ -644,10 +595,6 @@
-
-
- ECMA5 CALL APPLY 模拟 + ECMA5 this指针
- + @@ -340,27 +344,14 @@
- 概念
-
-
-
-call 模拟
-
-1
2
3
4
5
6
7
8
Function.prototype.myCall = function(_context){
let context = _context || window;// null -> window
context.fn = this;
let args = [].slice.call(arguments,1,arguments.length);
let result = !args ?context.fn():context.fn(...args);
delete context.fn;
return result;
}
+1
2
3
4
5
6
7
8
9
10
let obj = {
fun : function(){
console.log(this);//obj
return function(){
console.log(this);//window 匿名函数有全局性
};
}
};
- more >>
+ more >>
@@ -395,7 +386,7 @@
- 展开全文 >>
+ 展开全文 >>
@@ -425,19 +416,19 @@
+
- ECMA6 类
+ ECMA5 数组
-
+
@@ -445,14 +436,19 @@
- Classes
1 Class-Like structures in ecma5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// property
function PersonType(name){
this.name = name;
}
// methods: be assigned to the prototype
// all instances of the object share the same function
PersonType.prototype.sayName = function(){
console.log(this.name);
}
let person = new PersonType('chochi');
person.sayName();
// person is a instance of obeject and PersonType
+ 1 静态方法
1.1 判断是否为数组
+
+1
Array.isArray( array )
+
+
@@ -482,7 +478,7 @@ Class
diff --git a/tags/JS/index.html b/tags/JS/index.html
index 40f36c5..e00e43a 100644
--- a/tags/JS/index.html
+++ b/tags/JS/index.html
@@ -155,63 +155,14 @@ chochi
- ECMA5 数组
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ECMA5 this指针
+ ECMA5 对象
@@ -253,14 +204,14 @@
- ECMA5 对象
+ ECMA5 函数
@@ -302,14 +253,14 @@
- ECMA5 函数
+ ECMA5 包装对象
@@ -351,14 +302,14 @@
- ECMA5 标准库
+ ECMA6 类
@@ -400,14 +351,14 @@
- ECMA5 CALL APPLY 模拟
+ ECMA5 数组
@@ -449,14 +400,14 @@
- ECMA5 包装对象
+ ECMA5 面向对象编程
@@ -498,14 +449,14 @@
- ECMA6 类
+ ECMA5 this指针
@@ -547,14 +498,14 @@
- ECMA5 面向对象编程
+ ECMA5 字符串
@@ -596,14 +547,14 @@
- ECMA5 字符串
+ ECMA5 数据格式
@@ -644,10 +595,6 @@
-
-
概念
-
-
-
-
call 模拟
-
-
1 | Function.prototype.myCall = function(_context){ |
1 | let obj = { |
- 展开全文 >>
+ 展开全文 >>
@@ -425,19 +416,19 @@
+
- ECMA6 类
+ ECMA5 数组
-
+
@@ -445,14 +436,19 @@
- Classes
1 Class-Like structures in ecma5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// property
function PersonType(name){
this.name = name;
}
// methods: be assigned to the prototype
// all instances of the object share the same function
PersonType.prototype.sayName = function(){
console.log(this.name);
}
let person = new PersonType('chochi');
person.sayName();
// person is a instance of obeject and PersonType
+ 1 静态方法
1.1 判断是否为数组
+
+1
Array.isArray( array )
+
+
@@ -482,7 +478,7 @@ Class
diff --git a/tags/JS/index.html b/tags/JS/index.html
index 40f36c5..e00e43a 100644
--- a/tags/JS/index.html
+++ b/tags/JS/index.html
@@ -155,63 +155,14 @@ chochi
- ECMA5 数组
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ECMA5 this指针
+ ECMA5 对象
@@ -253,14 +204,14 @@
- ECMA5 对象
+ ECMA5 函数
@@ -302,14 +253,14 @@
- ECMA5 函数
+ ECMA5 包装对象
@@ -351,14 +302,14 @@
- ECMA5 标准库
+ ECMA6 类
@@ -400,14 +351,14 @@
- ECMA5 CALL APPLY 模拟
+ ECMA5 数组
@@ -449,14 +400,14 @@
- ECMA5 包装对象
+ ECMA5 面向对象编程
@@ -498,14 +449,14 @@
- ECMA6 类
+ ECMA5 this指针
@@ -547,14 +498,14 @@
- ECMA5 面向对象编程
+ ECMA5 字符串
@@ -596,14 +547,14 @@
- ECMA5 字符串
+ ECMA5 数据格式
@@ -644,10 +595,6 @@
-
-
- ECMA6 类 + ECMA5 数组
- + @@ -445,14 +436,19 @@
- Classes
1 Class-Like structures in ecma5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// property
function PersonType(name){
this.name = name;
}
// methods: be assigned to the prototype
// all instances of the object share the same function
PersonType.prototype.sayName = function(){
console.log(this.name);
}
let person = new PersonType('chochi');
person.sayName();
// person is a instance of obeject and PersonType
+ 1 静态方法
1.1 判断是否为数组
+
+1
Array.isArray( array )
+
+
Classes
1 Class-Like structures in ecma5
1 | // property |
1 静态方法
1.1 判断是否为数组
-
+
1 | Array.isArray( array ) |
@@ -482,7 +478,7 @@
-
-
-
-
-
-
-
-
-
-
Class
diff --git a/tags/JS/index.html b/tags/JS/index.html index 40f36c5..e00e43a 100644 --- a/tags/JS/index.html +++ b/tags/JS/index.html @@ -155,63 +155,14 @@chochi
- ECMA5 数组 -
- - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-