数码资讯
javascript函数学习总结及相关编程习惯指南
空的和不确定的 未定义的变量相当于一个变量,没有显式地赋值(赋值或不忽略,逻辑)。js的奇怪之处在于未定义的值实际上是可以使用的值。 >变量; > Foo 未定义 同样,当参数丢失时,Javascript分配一个未定义的: >函数id(x){返回x } >(ID) 未定义 a = 1; 未定义的真/
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
空的和不确定的
未定义的变量相当于一个变量,没有显式地赋值(赋值或不忽略,逻辑)。js的奇怪之处在于未定义的值实际上是可以使用的值。
>变量;
> Foo
未定义
同样,当参数丢失时,Javascript分配一个未定义的:
>函数id(x){返回x }
>(ID)
未定义
a = 1;
未定义的真/ = =!
一个未定义的
VaR B
A =
NULL相当于没有显式指定的变量,而不是被意外原因忽略(null赋值、合法逻辑)。
参与操作
如果js的null进入操作,它将真正解析为0或false:
(1 +无效)# 1(1 * 0(零)# 1×空)#无限
未定义进入操作并获得楠:
(1 +未定义)#南(1 *未定义)#南(1 /未定义)#南
逻辑判断
零和未定义的逻辑判断被认为是错误的。
只有一个判断可以同时检验这两个项目是否正确。
将把false、- 0、+ 0、和作为空值。
如果(v){
值
{人}
无值
}
但是如果你遇到了=坑
变量Foo;
console.log(foo = = null); / /真的
console.log(foo = =不明) / /真实;
console.log(foo = null); / /假
console.log(foo =定义); / /真的
console.log(空= =不明) / /真实;
好的实践将使用= =
法官定义和非空,只能使用:如果(= =空)!一个!=未定义的)。
= =和= =
1 =用于确定两个值是否相等。
当两种类型的值不同时,会自动转换,结果与直觉非常不一致,这可能不是你想要的结果。
0 false
0 =
0 =0 /真
falsefalse false
false0
false =未定义的/ false
false = false / false
NULL =未定义的/真的
= 0
2 =
类型+值比较
如果操作数具有相同的类型和值,则返回true = =,!=返回false。
最佳实践:
在任何时候,比较操作=!
JSON操作
无功的人= {姓名:'saad,年龄:26,部门:{编号:15,名称:RD} };
无功stringfromperson = json.stringify(人);
stringfromperson等于 / * {名字:萨阿德
无功personfromstring = JSON.parse(stringfromperson);
personfromstring等于个人目标 / * * /
串
var obj = { {
名称:'myobj
};
JSON.stringify(obj);
函数对象和匿名函数
函数对象分配
无功slice_func = { }。片
/ / slice_func()
var =函数(){()
};
()
var = {
乐趣:函数(){
};
}
( / / a.fun)
SomeElement.addEventListener(单击
我是匿名的!
});
以及
函数(){
返回类型Foo; / / foo是有效的范围内
};
外部不可见
类型 / /定义foo;
(f);
匿名函数
从
变量名= 'chris;
VaR的年龄'34;
无功状态=孤独;
功能createmember(){
{…{ }…}
}
功能getmemberdetails(){
{…{ }…}
}
以
VaR MyApplication =函数(){()
变量名= 'chris;
VaR的年龄'34;
无功状态=孤独;
返回{
createmember:函数(){
{…{ }…}
},
getmemberdetails:函数(){
{…{ }…}
}
}
(});
/ / myapplication.createmember(和)
myapplication.getmemberdetails(现在) / /作品。
最佳实践
1。在定义多个变量时,省略var关键字,并使用逗号代替。
无功someitem =字符串;
无功anotheritem =还有一只柱;
无功onemoreitem =越弦;
更好的做法
无功someitem =字符串,
anotheritem =还有一只柱,
onemoreitem =更多的字符串;
2。记住,不要忽略分号,也不要忽略花括号。
分号的省略可能导致更大、未知、未被发现的问题。
无功someitem =字符串
函数doSomething(){
return'something
}
更好的做法
无功someitem =字符串;
函数doSomething(){
return'something;
}
三.使用对象而不是新的(){ }
在Javascript中创建对象有很多种方法,传统方法可能是使用新的构造函数,如下所示:
新对象();
o.name = 'jeffrey;
o.lastname =道路;
o.somefunction =函数(){
console.log(这个名字);
}
更好的做法
var;{ /空对象
var { { { {
名称:'jeffrey,
lastName =道路,
功能:功能(){
console.log(这个名字);
}
};
只要多个全局变量被设置在一个命名空间,这将大大减少与其他应用程序不发生相互作用的可能性,组件或类库。道格拉斯克罗克福德
4。使用数组代替新的(){ }
var =新数组();
{ 0 } 乔;
一个{ 1 } = 'plumber;
更好的做法:
var a = { '乔','plumber};
5.typeof判断
型一般只能返回以下结果:数字、布尔、字符串、函数、对象、定义
Expr:
类型=XX
类型的XX = =!
例如.
数字
Typeof 37 =数;
3.14 =若干类型的;
类型=无穷数;
Typeof NaN =数'; / /楠虽然是非数字的缩写
字符串
类= 'String';
typeof'string=BLA;
Typeof(类型1)= = = 'String'; / /类型的回报肯定是一个字符串
/ /布尔运算
真正的'boolean类型=;
Typeof false ='boolean';
未定义
类定义= 'undefined;
typeof blabla = 'undefined '; / /一个未定义的变量,或一个定义而不是变量的初始值
对象
{ 1 } =类型:'object;
类{ 1, 2, 4 } = 'object '; / / array.isarray或object.prototype.tostring.call方法可以区分数组和实物之间
种新的(日期)= 'object;
函数
Typeof(功能){ } = = = 'function;
Typeof Math.sin = 'function;
类型的空'object '; / / Javascript从出生,一直都是这样的。
6。三元运算符:强和风骚
语法
XXX:YYY的表达
坏
VaR的方向;
如果(x<200){
方向= 1;
{人}
方向= 1;
}
OD
var方向= x 2001:- 1;
7。使用逻辑和/或判断条件
var = 10;
foo = = 10); / / doSomething(相当于如果(foo = = 10)(做);
foo = = 5); / / | | doSomething(相当于如果(Foo!= 5)(做);
默认值
a b'default| |
返回B C D | | | | > 10:2
8。当您将变量赋给变量时,不要忘记使用var关键字。
将一个未定义的变量赋给变量会导致创建一个全局变量。
9。自我调用功能
调用匿名函数(自调用匿名函数)或立即调用函数表达式(生活立即调用函数表达式)。这是一个函数,创建后立即自动执行
(函数({){)
一些自动执行的私有代码。
});
(函数(a,b){)
var结果;
返回结果;
})(10,20)
10。避免使用eval()和函数的构造
eval =邪恶不仅降低了脚本的性能大大提高,但同时也带来了巨大的安全隐患,因为JIT太高的权限。
使用eval和函数的构造函数是一个非常昂贵的操作,因为他们每次调用脚本引擎的源代码转换成可执行的代码。
VaR func1 =新的功能(功能码);
VaR func2 = eval(功能码);
11。避免使用()
使用()插入全局变量。因此,相同名称的变量将被覆盖并造成不必要的麻烦。
12。脚本放置在页面的底部。
记住,主要目标是使页面尽可能快地向用户提供页面。文件夹被阻塞了。在加载和执行脚本之前,浏览器不能继续呈现以下内容。因此,用户将不得不等待更长时间。
13。避免在语句中声明变量
坏
对于(var i = 0;我< someArray.length;i++){
var container = document.getelementbyid('container');
我的号码:container.innerHTML = +我;
console.log(我);
}
OD
var container = document.getelementbyid('container');
对于(var i = 0,len = someArray.length;我< len;i++){
我的号码:container.innerHTML = +我;
console.log(我);
}
14。向代码添加注释
循环数组,每个输出名称(译者注:这个注释看起来有点多余)。
对于(var i = 0,len = array.length;我< len;i++){
console.log(数组{我});
}
15.instanceof
这是法要求开发商明确确认的对象是一种特殊类型
无功ostrinbject =新的字符串(Hello World);
console.log(ostrinbject是字符串); / /输出真
以确定它是否是富类的一个实例。
函数(富){ }
新富();
console.log(foo instanceof Foo) / /真的
以确定它是否是富类的一个实例,其父是该类型的实例。
功能(AOO){ }
函数(富){ }
foo.prototype =新AOO(); / / Javascript原型继承
新富();
console.log(foo instanceof Foo) / /真的
console.log(foo instanceof AOO) / /真的
16、应用 /调用
somefn.call(arg1,arg2这样,ARG3);
SomeFn.apply(,{ arg1,arg2,ARG3 });
应用
的function.apply(obj,args)方法可以得到两参数
Obj:这个对象在函数类替换此对象
参数:这是一个数组,它将作为一个参数传递给函数(参数-->参数)。
呼叫
function.call(obj参数param2 { { {,} } {,石蜡,…} })
Obj:这个对象在函数类替换此对象
参数:这是一个参数列表
这取决于参数的类型。
未定义的变量相当于一个变量,没有显式地赋值(赋值或不忽略,逻辑)。js的奇怪之处在于未定义的值实际上是可以使用的值。
>变量;
> Foo
未定义
同样,当参数丢失时,Javascript分配一个未定义的:
>函数id(x){返回x }
>(ID)
未定义
a = 1;
未定义的真/ = =!
一个未定义的
VaR B
A =
NULL相当于没有显式指定的变量,而不是被意外原因忽略(null赋值、合法逻辑)。
参与操作
如果js的null进入操作,它将真正解析为0或false:
(1 +无效)# 1(1 * 0(零)# 1×空)#无限
未定义进入操作并获得楠:
(1 +未定义)#南(1 *未定义)#南(1 /未定义)#南
逻辑判断
零和未定义的逻辑判断被认为是错误的。
只有一个判断可以同时检验这两个项目是否正确。
将把false、- 0、+ 0、和作为空值。
如果(v){
值
{人}
无值
}
但是如果你遇到了=坑
变量Foo;
console.log(foo = = null); / /真的
console.log(foo = =不明) / /真实;
console.log(foo = null); / /假
console.log(foo =定义); / /真的
console.log(空= =不明) / /真实;
好的实践将使用= =
法官定义和非空,只能使用:如果(= =空)!一个!=未定义的)。
= =和= =
1 =用于确定两个值是否相等。
当两种类型的值不同时,会自动转换,结果与直觉非常不一致,这可能不是你想要的结果。
0 false
0 =
0 =0 /真
falsefalse false
false0
false =未定义的/ false
false = false / false
NULL =未定义的/真的
= 0
2 =
类型+值比较
如果操作数具有相同的类型和值,则返回true = =,!=返回false。
最佳实践:
在任何时候,比较操作=!
JSON操作
无功的人= {姓名:'saad,年龄:26,部门:{编号:15,名称:RD} };
无功stringfromperson = json.stringify(人);
stringfromperson等于 / * {名字:萨阿德
无功personfromstring = JSON.parse(stringfromperson);
personfromstring等于个人目标 / * * /
串
var obj = { {
名称:'myobj
};
JSON.stringify(obj);
函数对象和匿名函数
函数对象分配
无功slice_func = { }。片
/ / slice_func()
var =函数(){()
};
()
var = {
乐趣:函数(){
};
}
( / / a.fun)
SomeElement.addEventListener(单击
我是匿名的!
});
以及
函数(){
返回类型Foo; / / foo是有效的范围内
};
外部不可见
类型 / /定义foo;
(f);
匿名函数
从
变量名= 'chris;
VaR的年龄'34;
无功状态=孤独;
功能createmember(){
{…{ }…}
}
功能getmemberdetails(){
{…{ }…}
}
以
VaR MyApplication =函数(){()
变量名= 'chris;
VaR的年龄'34;
无功状态=孤独;
返回{
createmember:函数(){
{…{ }…}
},
getmemberdetails:函数(){
{…{ }…}
}
}
(});
/ / myapplication.createmember(和)
myapplication.getmemberdetails(现在) / /作品。
最佳实践
1。在定义多个变量时,省略var关键字,并使用逗号代替。
无功someitem =字符串;
无功anotheritem =还有一只柱;
无功onemoreitem =越弦;
更好的做法
无功someitem =字符串,
anotheritem =还有一只柱,
onemoreitem =更多的字符串;
2。记住,不要忽略分号,也不要忽略花括号。
分号的省略可能导致更大、未知、未被发现的问题。
无功someitem =字符串
函数doSomething(){
return'something
}
更好的做法
无功someitem =字符串;
函数doSomething(){
return'something;
}
三.使用对象而不是新的(){ }
在Javascript中创建对象有很多种方法,传统方法可能是使用新的构造函数,如下所示:
新对象();
o.name = 'jeffrey;
o.lastname =道路;
o.somefunction =函数(){
console.log(这个名字);
}
更好的做法
var;{ /空对象
var { { { {
名称:'jeffrey,
lastName =道路,
功能:功能(){
console.log(这个名字);
}
};
只要多个全局变量被设置在一个命名空间,这将大大减少与其他应用程序不发生相互作用的可能性,组件或类库。道格拉斯克罗克福德
4。使用数组代替新的(){ }
var =新数组();
{ 0 } 乔;
一个{ 1 } = 'plumber;
更好的做法:
var a = { '乔','plumber};
5.typeof判断
型一般只能返回以下结果:数字、布尔、字符串、函数、对象、定义
Expr:
类型=XX
类型的XX = =!
例如.
数字
Typeof 37 =数;
3.14 =若干类型的;
类型=无穷数;
Typeof NaN =数'; / /楠虽然是非数字的缩写
字符串
类= 'String';
typeof'string=BLA;
Typeof(类型1)= = = 'String'; / /类型的回报肯定是一个字符串
/ /布尔运算
真正的'boolean类型=;
Typeof false ='boolean';
未定义
类定义= 'undefined;
typeof blabla = 'undefined '; / /一个未定义的变量,或一个定义而不是变量的初始值
对象
{ 1 } =类型:'object;
类{ 1, 2, 4 } = 'object '; / / array.isarray或object.prototype.tostring.call方法可以区分数组和实物之间
种新的(日期)= 'object;
函数
Typeof(功能){ } = = = 'function;
Typeof Math.sin = 'function;
类型的空'object '; / / Javascript从出生,一直都是这样的。
6。三元运算符:强和风骚
语法
XXX:YYY的表达
坏
VaR的方向;
如果(x<200){
方向= 1;
{人}
方向= 1;
}
OD
var方向= x 2001:- 1;
7。使用逻辑和/或判断条件
var = 10;
foo = = 10); / / doSomething(相当于如果(foo = = 10)(做);
foo = = 5); / / | | doSomething(相当于如果(Foo!= 5)(做);
默认值
a b'default| |
返回B C D | | | | > 10:2
8。当您将变量赋给变量时,不要忘记使用var关键字。
将一个未定义的变量赋给变量会导致创建一个全局变量。
9。自我调用功能
调用匿名函数(自调用匿名函数)或立即调用函数表达式(生活立即调用函数表达式)。这是一个函数,创建后立即自动执行
(函数({){)
一些自动执行的私有代码。
});
(函数(a,b){)
var结果;
返回结果;
})(10,20)
10。避免使用eval()和函数的构造
eval =邪恶不仅降低了脚本的性能大大提高,但同时也带来了巨大的安全隐患,因为JIT太高的权限。
使用eval和函数的构造函数是一个非常昂贵的操作,因为他们每次调用脚本引擎的源代码转换成可执行的代码。
VaR func1 =新的功能(功能码);
VaR func2 = eval(功能码);
11。避免使用()
使用()插入全局变量。因此,相同名称的变量将被覆盖并造成不必要的麻烦。
12。脚本放置在页面的底部。
记住,主要目标是使页面尽可能快地向用户提供页面。文件夹被阻塞了。在加载和执行脚本之前,浏览器不能继续呈现以下内容。因此,用户将不得不等待更长时间。
13。避免在语句中声明变量
坏
对于(var i = 0;我< someArray.length;i++){
var container = document.getelementbyid('container');
我的号码:container.innerHTML = +我;
console.log(我);
}
OD
var container = document.getelementbyid('container');
对于(var i = 0,len = someArray.length;我< len;i++){
我的号码:container.innerHTML = +我;
console.log(我);
}
14。向代码添加注释
循环数组,每个输出名称(译者注:这个注释看起来有点多余)。
对于(var i = 0,len = array.length;我< len;i++){
console.log(数组{我});
}
15.instanceof
这是法要求开发商明确确认的对象是一种特殊类型
无功ostrinbject =新的字符串(Hello World);
console.log(ostrinbject是字符串); / /输出真
以确定它是否是富类的一个实例。
函数(富){ }
新富();
console.log(foo instanceof Foo) / /真的
以确定它是否是富类的一个实例,其父是该类型的实例。
功能(AOO){ }
函数(富){ }
foo.prototype =新AOO(); / / Javascript原型继承
新富();
console.log(foo instanceof Foo) / /真的
console.log(foo instanceof AOO) / /真的
16、应用 /调用
somefn.call(arg1,arg2这样,ARG3);
SomeFn.apply(,{ arg1,arg2,ARG3 });
应用
的function.apply(obj,args)方法可以得到两参数
Obj:这个对象在函数类替换此对象
参数:这是一个数组,它将作为一个参数传递给函数(参数-->参数)。
呼叫
function.call(obj参数param2 { { {,} } {,石蜡,…} })
Obj:这个对象在函数类替换此对象
参数:这是一个参数列表
这取决于参数的类型。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。