javascript
2021-06-22 08:06
:大于,向左
=:大于或等于
。。。。。。。
JavaScript == 与 === 区别
1、对于 string、number 等基础类型,== 和 === 是有区别的
a)不同类型间比较,== 之比较 "转化成同一类型后的值" 看 "值" 是否相等,=== 如果类型不同,其结果就是不等。
b)同类型比较,直接进行 "值" 比较,两者结果一样。
2、对于 Array,Object 等高级类型,== 和 === 是没有区别的
进行 "指针地址" 比较
3、基础类型与高级类型,== 和 === 是有区别的
a)对于 ==,将高级转化为基础类型,进行 "值" 比较
b)因为类型不同,=== 结果为 false
4、!= 为 == 的非运算,!== 为 === 的非运算
。。。。。。。
逻辑运算符:
逻辑非 "!":not(相反)
逻辑与 "&&":and(和),当两个条件成立时会显示布尔值“true”,反之会显示“false”
逻辑或 "":or(或者),当一个或两个条件成立时会显示布尔值“true”,反之会显示“false”
可以在条件语句中使用比较运算符对值进行比较,然后根据结果来采取行动。
JavaScript 还包含了基于某些条件对变量进行赋值的条件运算符。
javascript条件语句
条件语句用于基于不同的条件来执行不同的动作。
条件语句
通常在写代码时,您总是需要为不同的决定来执行不同的动作。您可以在代码中使用条件语句来完成该任务。
在 JavaScript 中,我们可使用以下条件语句:
if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
if...else if....else 语句- 使用该语句来选择多个代码块之一来执行
switch 语句 - 使用该语句来选择多个代码块之一来执行
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript if...Else 语句
。。。。。。。。。。。。。。。。。。
if 语句
只有当指定条件为 true 时,该语句才会执行代码
请使用小写的 if。使用大写字母(IF)会生成 JavaScript 错误!
if (condition(条件))
{
当条件为 true 时执行的代码
}
。。。。。。。。。。。。。。。。。。。。。。
使用 if....else 语句在条件为 true 时执行代码,在条件为 false 时执行其他代码。
语法:
if (condition(条件))
{
当条件为 true 时执行的代码
}
else
{
当条件不为 true 时执行的代码
}
。。。。。。。。。。。。。。。。。。。。。。
使用 if....,else if,...else 语句来选择多个代码块之一来执行。
语法:
if (condition1)
{
当条件 1 为 true 时执行的代码
}
else if (condition2)
{
当条件 2 为 true 时执行的代码
}
else
{
当条件 1 和 条件 2 都不为 true 时执行的代码
}
:::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript switch(切换) 语句
switch 语句用于基于不同的条件来执行不同的动作。
语法:
switch(n)
{
case 1:
执行代码块 1
break;
case 2:
执行代码块 2
break;
default:
与 case 1 和 case 2 不同时执行的代码
}
工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。
。。。。。。。。
default 关键词
请使用 default 关键词来规定匹配不存在时做的事情
::::::::::::::::::::::::::::::::::::::::
JavaScript for 循环
循环可以将代码块执行指定的次数。
如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的。
。。。。。。。。。。。。。。。。
JavaScript 支持不同类型的循环:
for - 循环代码块一定的次数
for/in - 循环遍历对象的属性
while - 当指定的条件为 true 时循环指定的代码块
do/while - 同样当指定的条件为 true 时循环指定的代码块
。。。。。。。。。。。。。。。。
for 循环
下面是 for 循环的语法:
for (语句 1; 语句 2; 语句 3)
{
被执行的代码块
}
语句 1 (代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行
语句 1
通常我们会使用语句 1 初始化循环中所用的变量 (var i=0)。
语句 1 是可选的,也就是说不使用语句 1 也可以。
您可以在语句 1 中初始化任意(或者多个)值。
同时您还可以省略语句 1(比如在循环开始前已经设置了值时)
语句 2
通常语句 2 用于评估初始变量的条件。
语句 2 同样是可选的。
如果语句 2 返回 true,则循环再次开始,如果返回 false,则循环将结束。
如果您省略了语句 2,那么必须在循环内提供 break。否则循环就无法停下来。这样有可能令浏览器崩溃。
语句 3*
通常语句 3 会增加初始变量的值。
语句 3 也是可选的。
语句 3 有多种用法。增量可以是负数 (i--),或者更大 (i=i+15)。
语句 3 也可以省略(比如当循环内部有相应的代码时)
。。。。。。。。。。。。。。。。。。。。
for/in,循环语句循环遍历对象的属性。
:::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript while 循环
只要指定条件为 true,循环就可以一直执行代码块。
语法:
while (条件)
{
需要执行的代码
}
如果您忘记增加条件中所用变量的值,该循环永远不会结束。这可能导致浏览器崩溃。
。。。。。。。。。。。。。。
do/while 循环
do/while 循环是 while 循环的变体。该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环。
do
{
需要执行的代码
}
while (条件)
别忘记增加条件中所用变量的值,否则循环永远不会结束!
。。。。。。。。。。。。。。。
while 使用 length 属性循环数组。
while 和 do/while 的区别 : do/while至少会执行一遍。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript Break 和 Continue 语句
break 语句用于跳出循环,可以不用花括号。
continue 用于跳过循环中的一个迭代(会继续执行该循环之后的代码(如果有的话))。指定哪个就跳过哪个
continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。
continue 语句(带有或不带标签引用)只能用在循环中。
break 语句(不带标签引用),只能用在循环或 switch 中。
break 和 continue 语句仅仅是能够跳出代码块的语句。
语法:
break空格+标签名称;
continue空格+标签名称;
JavaScript 标签:
如需标记 JavaScript 语句,请在语句之前加上冒号。
通过标签引用,break 语句可用于跳出任何 JavaScript 代码块:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript (typeof), (null), 和 (undefined):
你可以使用 "typeof" 操作符 来检测变量的数据类型。
。。。。。。。。。。。。。。
在JavaScript中,数组是一种特殊的对象类型。 因此 typeof [#,#,#,#] 返回 object。
。。。。。。。。。。。。。。
null在 JavaScript 中 null 表示 "什么都没有",但类型为对象。
null是一个只有一个值的特殊类型,表示一个空对象引用。
用 typeof 检测 null 返回是object。
你可以设置为 null 来清空对象。
。。。。。。。。。。。。。。
你可以设置为 undefined 来清空对象,但类型为 undefined。
undefined在 JavaScript 中, undefined 是一个没有设置值的变量,typeof 一个没有值的变量会返回 undefined。
任何变量都可以通过设置值为 undefined 来清空,
null 和 undefined 的值相等,但类型不等。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript 类型转换:
Number() 转换为数字。
String() 转换为字符串。
Boolean() 转化为布尔值。
。。。。。。。。。。。。
javaScript中有 5 种不同的数据类型:
string(字符串)
number(数字)
boolean(布尔值)
object(对象)
function(函数)
。。。。。。。。。。。
3 种对象类型:
Object
Date
Array
。。。。。。。。。。。。。。。
2 个不包含任何值的数据类型:
null
undefined
请注意:
NaN 的数据类型是 number。
数组(Array)的数据类型是 object。
日期(Date)的数据类型为 object。
null 的数据类型是 object。
未定义变量的数据类型为 undefined。
如果对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof 来判断他们的类型,因为都是 返回 Object。
。。。。。。。。。。。。。
constructor 属性
constructor 属性返回所有 JavaScript 变量的构造函数
你可以使用 constructor 属性来查看对象是否为数组 (包含字符串 "Array")
。。。。。。。。。。。。。。。。。。。。。。。。
javaScript 变量可以转换为新变量或其他数据类型:
通过使用 JavaScript 函数
通过 JavaScript 自身自动转换
。。。。。。。。。。
将数字转换为字符串
全局方法 String():可以将数字转换为字符串,该方法可用于任何类型的数字,字母,变量,表达式。Number 方法 to String() 也是有同样的效果。
toExponential():把对象的值转换为指数计数法。
toFixed():把数字转换为字符串,结果的小数点后有指定位数的数字。
toPrecision():把数字格式化为指定的长度。
。。。。。。。。。。。。。。。。。。。。。。
将布尔值转换为字符串
全局方法 String():可以将布尔值转换为字符串。
。。。。。。。。。。。。。。。。。。。。。。
将字符串转换为数字
全局方法 Number():可以将字符串转换为数字,空字符串转换为 0,其他的字符串会转换为 NaN (不是个数字)。
parseFloat():解析一个字符串,并返回一个浮点数。
parseInt():解析一个字符串,并返回一个整数。
全局方法 Number() 可将布尔值转换为数字。Number(false) // 返回 0,Number(true) // 返回 1
全局方法 Number() 可将日期转换为数字。d = new Date(),Number(d) // 返回 1404568027739
。。。。。。。。。。。。。。。。。。。。。
一元运算符 "+":
操作符 "+" 可用于将变量转换为数字。
如果变量不能转换,它仍然会是一个数字,但值为 NaN (不是一个数字)。
当 JavaScript 尝试操作一个 "错误" 的数据类型时,会自动转换为 "正确" 的数据类型。
当你尝试输出一个对象或一个变量时 JavaScript 会自动调用变量的 toString() 方法。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
javascript 正则表达式:
正则表达式(英语:RegularExpression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。
搜索模式可用于文本搜索和文本替换。
。。。。。。。。。。。。。。。。。
什么是正则表达式?
正则表达式是由一个字符序列形成的搜索模式。
当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。
正则表达式可以是一个简单的字符,或一个更复杂的模式。
正则表达式可用于所有文本搜索和文本替换的操作。
语法:/正则表达式主体/修饰符(可选)
var patt = /runoob/i。
/runoob/i 是一个正则表达式。
runoob 是一个正则表达式主体 (用于检索)。
i 是一个修饰符 (搜索不区分大小写)。
正则表达式修饰符:
i:执行对大小写不敏感的匹配。
g:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m :执行多行匹配。
。。。。。。。。。。。
字符串方法:
在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。
search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。子字符串的位置按 "索引" 来排序。
replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。先找到要替换的元素位置。
。。。。。。。。。。。
正则表达式模式:
方括号用于查找某个范围内的字符:
[abc]:查找方括号之间的任何字符。
[0-9]:查找任何从 0 至 9 的数字。
(xy):查找任何以 分隔的选项。
元字符是拥有特殊含义的字符:
\d:查找数字。
\s:查找空白字符。
\b:匹配单词边界。
\uxxxx:查找以十六进制数 xxxx 规定的 Unicode 字符。
量词:
n+:匹配任何包含至少一个 n 的字符串。
n*:匹配任何包含零个或多个 n 的字符串。
n?:匹配任何包含零个或一个 n 的字符串。
。。。。。。。。。。。。。。。。。
RegExp 对象:
在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。
test() 方法是一个正则表达式方法。
test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
exec() 方法是一个正则表达式方法。
exec() 方法用于检索字符串中的正则表达式的匹配。
该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。会直接返回匹配结果。JavaScript 错误 - throw、try 和 catch:
try 语句测试代码块的错误。
catch 语句处理错误。
throw 语句创建自定义错误。
。。。。。。。。。。
JavaScript 错误:
当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误。
可能是语法错误,通常是程序员造成的编码错误或错别字。
可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)。
可能是由于来自服务器或用户的错误输出而导致的错误。
当然,也可能是由于许多其他不可预知的因素。
。。。。。。。。。。。。。。。。。。。。
当错误发生时,当事情出问题时,JavaScript 引擎通常会停止,并生成一个错误消息。
描述这种情况的技术术语是:JavaScript 将抛出一个错误。
。。。。。。。。。。。。。。。。。。。。
try 和 catch:
try 语句允许我们定义在执行时进行错误测试的代码块。
catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
try 和 catch 是成对出现的。
语法:
try {
//在这里运行代码
} catch(err) {
//在这里处理错误
}
。。。。。。。。。。
throw 语句:
throw 语句允许我们创建自定义错误。
正确的技术术语是:创建或抛出异常(exception)。
如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。
语法:
throw exception(异常)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript 调试:
在编写 JavaScript 时,如果没有调试工具将是一件很痛苦的事情。
没有调试工具是很难去编写 JavaScript 程序的。你的代码可能包含语法错误,逻辑错误,如果没有调试工具,这些错误比较难于发现。
通常,如果 JavaScript 出现错误,是不会有提示信息,这样你就无法找到代码错误的位置。
。。。。。。。。。。。。。。。。。。
在程序代码中寻找错误叫做“代码调试”。
调试很难,但幸运的是,很多浏览器都内置了调试工具。
内置的调试工具可以开始或关闭,严重的错误信息会发送给用户。
有了调试工具,我们就可以设置断点 (代码停止执行的位置), 且可以在代码执行时检测变量。
浏览器启用调试工具一般是按下 F12 键,并在调试菜单中选择 "Console" 。
console.log() 方法:
如果浏览器支持调试,你可以使用 console.log() 方法在调试窗口上打印 JavaScript 值:
设置断点:
在调试窗口中,你可以设置 JavaScript 代码的断点。
在每个断点上,都会停止执行 JavaScript 代码,以便于我们检查 JavaScript 变量的值。
在检查完毕后,可以重新执行代码(如播放按钮)。
debugger 关键字:
debugger 关键字用于停止执行 JavaScript,并调用调试函数。
这个关键字与在调试工具中设置断点的效果是一样的。
如果没有调试可用,debugger 语句将无法工作。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript 变量提升(hoisting):
JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。
JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。
JavaScript 只有声明的变量会提升,初始化的不会。
在头部声明你的变量
对于大多数程序员来说并不知道 JavaScript 变量提升。
如果程序员不能很好的理解变量提升,他们写的程序就容易出现一些问题。
为了避免这些问题,通常我们在每个作用域开始前声明这些变量,这也是正常的 JavaScript 解析步骤,易于我们理解。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript 严格模式(use strict):
JavaScript 严格模式(strict mode)不允许使用未声明的变量。
严格模式(strict mode)即在严格的条件下运行。
"use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。
它不是一条语句,但是是一个"字面量表达式"。
"use strict" 的目的是指定代码在严格条件下执行。
严格模式下你不能使用未声明的变量。
在函数内部声明是局部作用域 (只在函数内使用严格模式):
为什么使用严格模式???:
消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为。
消除代码运行的一些不安全之处,保证代码运行的安全。
提高编译器效率,增加运行速度。
为未来新版本的Javascript做好铺垫。
"严格模式"体现了Javascript更合理、更安全、更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。
另一方面,同样的代码,在"严格模式"中,可能会有不一样的运行结果;一些在"正常模式"下可以运行的语句,在"严格模式"下将不能运行。掌握这些内容,有助于更细致深入地理解Javascript,让你变成一个更好的程序员。
严格模式的限制:
不允许使用未声明的变量,对象也是一个变量。未声明也不可以用。
不允许删除变量或对象。
不允许删除函数。
不允许变量重名。
不允许使用八进制。
不允许使用转义字符。
不允许对只读属性赋值。
不允许对一个使用getter方法读取的属性进行赋值。
不允许删除一个不允许删除的属性。
不允许变量名使用 "eval" 字符串。
不允许变量名使用 "arguments" 字符串。
不允许使用保留关键字。
由于一些安全原因,在作用域 eval() 创建的变量不能被调用。
禁止this关键字指向全局对象。
不允许使用以下这种语句:
"use strict";
with (Math){x = cos(2)}; // 报错
保留关键字:
为了向将来Javascript的新版本过渡,严格模式新增了以下一些保留关键字:
implements
interface
let
package
private
protected
public
static
yield
"use strict"(严格模式), 指令只允许出现在脚本或函数的开头。
:
JavaScript 使用误区
赋值运算符应用错误。
在 JavaScript 程序中如果你在 if 条件语句中使用赋值运算符的等号 (=) 将会产生一个错误结果, 正确的方法是使用比较运算符的两个等号 (==)。
赋值语句返回变量的值。
比较运算符常见错误:
在常规的比较中,数据类型是被忽略的。
在严格的比较运算中,=== 为恒等计算符,同时检查表达式的值与类型,switch 语句会使用恒等计算符(===)进行比较。
加法与连接注意事项:
加法是两个数字相加。
连接是两个字符串连接。
JavaScript 的加法和连接都使用 "+" 运算符。
浮点型数据使用注意事项:
JavaScript 中的所有数据都是以 64 位浮点型数据(float) 来存储。
所有的编程语言,包括 JavaScript,对浮点型数据的精确度都很难确定。用整数的乘除法来解决。
avaScript 字符串分行:
JavaScript 允许我们在字符串中使用断行语句,但是 在字符串中直接使用回车换行是会报错的,字符串断行需要使用反斜杠()。
错误的使用分号:
注意分号的使用。
return 语句使用注意事项:
JavaScript 默认是在代码的最后一行自动结束。
avaScript 也可以使用多行来结束一个语句。
注意:不用对 return 语句进行断行。
数组中使用名字来索引:
许多程序语言都允许使用名字来作为数组的索引。
使用名字来作为索引的数组称为关联数组(或哈希)。
JavaScript 不支持使用名字来索引数组,只允许使用数字索引。
在 JavaScript 中, 对象 使用 名字作为索引。
如果你使用名字作为索引,当访问数组时,JavaScript 会把数组重新定义为标准对象。
执行这样操作后,数组的方法及属性将不能再使用,否则会产生错误:
定义数组元素,最后不能添加逗号。
定义对象,最后不能添加逗号。
Undefined 不是 Null:
在 JavaScript 中, null 用于对象, undefined 用于变量,属性和方法。
对象只有被定义才有可能为 null,否则为 undefined。
如果我们想测试对象是否存在,在对象还没定义时将会抛出一个错误。
程序块作用域:
在每个代码块中 JavaScript 不会创建一个新的作用域,一般各个代码块的作用域都是全局的。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript 表单
HTML 表单验证可以通过 JavaScript 来完成。
HTML 表单验证也可以通过浏览器来自动完成。
如果表单字段 (fname) 的值为空, required 属性会阻止表单提交:
。。。。。。。。。。
数据验证:
数据验证用于确保用户输入的数据是有效的。
典型的数据验证有:
必需字段是否有输入?
用户是否输入了合法的数据?
在数字字段是否输入了文本?
大多数情况下,数据验证用于确保用户正确输入数据。
数据验证可以使用不同方法来定义,并通过多种方式来调用。
服务端数据验证是在数据提交到服务器上后再验证。
客户端数据验证 side validation是在数据发送到服务器前,在浏览器上完成验证。
。。。。。。。。。。。。
HTML 约束验证:
HTML5 新增了 HTML 表单的验证方式:约束验证(constraint validation)。
约束验证是表单被提交时浏览器用来实现验证的一种算法。
HTML 约束验证基于:
HTML 输入属性
CSS 伪类选择器
DOM 属性和方法
。。。。。。。。。。。。。
约束验证 HTML 输入属性:
disabled:规定输入的元素不可用
max:规定输入元素的最大值
min:规定输入元素的最小值
pattern:规定输入元素值的模式
required:规定输入元素字段是必需的
type:规定输入元素的类型
。。。。。。。。。。。。。。
约束验证 CSS 伪类选择器:
:disabled:选取属性为 "disabled" 属性的 input 元素
:invalid:选取无效的 input 元素
:optional:选择没有"required"属性的 input 元素
:required:选择有"required"属性的 input 元素
:valid:选取有效值的 input 元素
::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript 表单验证
JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。
表单数据经常需要使用 JavaScript 来验证其正确性:
验证表单数据是否为空?
验证输入是否是一个正确的email地址?
验证日期是否输入正确?
验证表单输入内容是否为数字型?
::::::::::::::::::::::::::::::::::::::::::::
JavaScript 验证 API
约束验证 DOM 方法:
checkValidity():如果 input 元素中的数据是合法的返回 true,否则返回 false。
setCustomValidity():
设置 input 元素的 validationMessage 属性,用于自定义错误提示信息的方法。
使用setCustomValidity设置了自定义提示后,validity.customError就会变成true,则checkValidity总是会返回false。如果要重新判断需要取消自定义提示,方式如下:
setCustomValidity(‘‘)
setCustomValidity(null)
setCustomValidity(undefined)
。。。。。。。。。。。。
约束验证 DOM 属性:
validity :布尔属性值,返回 input 输入值是否合法。
validationMessage:浏览器错误提示信息。
willValidate:指定 input 是否需要验证。
。。。。。。。。。。。。。。
Validity 属性
input 元素的 validity 属性包含一系列关于 validity 数据属性:
customError:设置为 true, 如果设置了自定义的 validity 信息。
patternMismatch:设置为 true, 如果元素的值不匹配它的模式属性。
rangeOverflow:设置为 true, 如果元素的值大于设置的最大值。
rangeUnderflow:设置为 true, 如果元素的值小于它的最小值。
stepMismatch:设置为 true, 如果元素的值不是按照规定的 step 属性设置。
tooLong:设置为 true, 如果元素的值超过了 maxLength 属性设置的长度。
typeMismatch:设置为 true, 如果元素的值不是预期相匹配的类型。
valueMissing:设置为 true,如果元素 (required 属性) 没有值。
valid:设置为 true,如果元素的值是合法的。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JavaScript 保留关键字
在 JavaScript 中,一些标识符是保留关键字,不能用作变量名或函数名。
javaScript 标准:
所有的现代浏览器完全支持 ECMAScript 3(ES3,JavaScript 的第三版,从 1999 年开始)。
ECMAScript 4(ES4)未通过。
ECMAScript 5(ES5,2009 年发布),是 JavaScript 最新的官方版本。
随着时间的推移,我们开始看到,所有的现代浏览器已经完全支持 ES5。
Javascript 的保留关键字不可以用作变量、标签或者函数名。有些保留关键字是作为 Javascript 以后扩展使用,以下是保留关键字 (按字母顺序排序):
abstract,arguments
boolean,break,byte
case,catch,char,class,const,continue
debugger,default,delete,do,double
else,enum,eval,export,extends
false,final,finally,float,for,function
goto
if,implements,import,in,instanceof,int,interface
let,long
native,new,null
package,private,protected,public
return
short,static,super,switch,synchronized
this,throw,throws
transient,true,try,typeof
var,void,volatile
while,with
yield
。。。。。。。。。。。。。。。
JavaScript 对象、属性和方法:
您也应该避免使用 JavaScript 内置的对象、属性和方法的名称作为 Javascript 的变量或函数名:
Array
Date
eval
function
hasOwnProperty
Infinity
isFinite
isNaN
isPrototypeOf
length
Math
NaN
name
Number
Object
prototype
String
toString
undefined
valueOf
。。。。。。。。。
Java 保留关键字:
JavaScript 经常与 Java 一起使用。您应该避免使用一些 Java 对象和属性作为 JavaScript 标识符:
getClass
java
JavaArray
javaClass
JavaObject
JavaPackage
。。。。。。。。。。。。。
Windows 保留关键字:
JavaScript 可以在 HTML 外部使用。它可在许多其他应用程序中作为编程语言使用。
在 HTML 中,您必须(为了可移植性,您也应该这么做)避免使用 HTML 和 Windows 对象和属性的名称作为 Javascript 的变量及函数名:
HTML 事件句柄:
除此之外,您还应该避免使用 HTML 事件句柄的名称作为 Javascript 的变量及函数名。
onblur
onclick
onerror
onfocus
onkeydown
onkeypress
onkeyup
onmouseover
onload
onmouseup
onmousedown
onsubmit
。。。。。。。。。。。
非标准 JavaScript:
除了保留关键字,在 JavaScript 实现中也有一些非标准的关键字。
一个实例是 const 关键字,用于定义变量。 一些 JavaScript 引擎把 const 当作 var 的同义词。另一些引擎则把 const 当作只读变量的定义。
Const 是 JavaScript 的扩展。JavaScript 引擎支持它用在 Firefox 和 Chrome 中。但是它并不是 JavaScript 标准 ES3 或 ES5 的组成部分。建议:不要使用它。
::::::::::::::::::::::::::::::::::::::::::::::
JavaScript JSON
JSON 是用于存储和传输数据的格式。
JSON 通常用于服务端向网页传递数据 。
什么是 JSON?
JSON 英文全称 ‘JavaScript‘ ‘Object‘ ‘Notation‘。
JSON 是一种轻量级的数据交换格式。
JSON是独立的语言。
JSON 易于理解。
JSON 使用 JavaScript 语法,但是 JSON 格式仅仅是一个文本,文本可以被任何编程语言读取及作为数据格式传递。
JSON 格式化后为 JavaScript 对象:
JSON 格式在语法上与创建 JavaScript 对象代码是相同的。
由于它们很相似,所以 JavaScript 程序可以很容易的将 JSON 数据转换为 JavaScript 对象。
JSON 语法规则:
数据为 键/值 对。
数据由逗号分隔。
大括号保存对象。
方括号保存数组。
JSON 数据:
一个名称对应一个值。
JSON 数据格式为 键/值 对,就像 JavaScript 对象属性。
键/值对包括字段名称(在双引号中),后面一个冒号,然后是值:
"name":"Runoob"
JSON 对象:
JSON 对象保存在大括号内。
就像在 JavaScript 中, 对象可以保存多个 键/值 对:
{"name":"Runoob", "url":"www.runoob.com"}
JSON 数组:
JSON 数组保存在中括号内。
就像在 JavaScript 中, 数组可以包含对象:
"sites":[
{"name":"Runoob", "url":"www.runoob.com"},
{"name":"Google", "url":"www.google.com"},
{"name":"Taobao", "url":"www.taobao.com"}
]
在以上实例中,对象 "sites" 是一个数组,包含了三个对象。
每个对象为站点的信息(网站名和网站地址)。
JSON.parse():用于将一个 JSON 字符串转换为 JavaScript 对象。
JSON.stringify():用于将 JavaScript 值转换为 JSON 字符串。
:
javascript void
:void(0) 含义
我们经常会使用到 javascript:void(0) 这样的代码,那么在 JavaScript 中 javascript:void(0) 代表的是什么意思呢?
javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要 "计算" 一个表达式但是不返回值。
语法格式如下:
href=""与href=""的区别: # 包含了一个位置信息,默认的锚是#top 也就是网页的上端。 而javascript:void(0), 仅仅表示一个死链接。 在页面很长的时候会使用 # 来定位页面的具体位置,格式为:# + id。 如果你要定义一个死链接请使用 javascript:void(0) 。 : JavaScript 代码规范 所有的 JavaScript 项目适用同一种规范。 代码规范通常包括以下几个方面: 变量和函数的命名规则。 空格,缩进,注释的使用规则。 其他常用规范……。 规范的代码可以更易于阅读与维护。 代码规范一般在开发前规定,可以跟你的团队成员来协商设置。 变量名推荐使用驼峰法来命名(camelCase): 运算符 ( = + - * / ) 前后需要添加空格: 使用 4 个空格符号来缩进代码块: 不推荐使用 TAB 键来缩进,因为不同编辑器 TAB 键的解析不一样。 简单语句的通用规则: 一条语句通常以分号作为结束符。 复杂语句的通用规则: 将左花括号放在第一行的结尾。 左花括号前添加一空格。 将右花括号独立放在一行。 不要以分号结束一个复杂的声明。 对象定义的规则: 将左花括号与类名放在同一行。 冒号与属性值间有个空格。 字符串使用双引号,数字不需要。 最后一个属性-值对后面不要添加逗号。 将右花括号独立放在一行,并以分号作为结束符号。 短的对象代码可以直接写成一行: 为了便于阅读每行字符建议小于数 80 个。 如果一个 JavaScript 语句超过了 80 个字符,建议在 运算符或者逗号后换行。 命名规则: 一般很多代码语言的命名规则都是类似的,例如: 变量和函数为小驼峰法标识, 即除第一个单词之外,其他单词首字母大写( lowerCamelCase)。 全局变量为大写 (UPPERCASE )。 常量 (如 PI) 为大写 (UPPERCASE )。 变量命名你是否使用这几种规则: hyp-hens, camelCase, 或 under_scores ?。 HTML 和 CSS 的横杠(-)字符:通常在 JavaScript 中被认为是减法,所以不允许使用。 HTML5 属性可以以 data- (如:data-quantity, data-price) 作为前缀。 CSS 使用 - 来连接属性名 (font-size)。 下划线: 很多程序员比较喜欢使用下划线(如:date_of_birth), 特别是在 SQL 数据库中。 PHP 语言通常都使用下划线。 帕斯卡拼写法(PascalCase): 帕斯卡拼写法(PascalCase) 在 C 语言中语言较多。 驼峰法: JavaScript 中通常推荐使用驼峰法,jQuery 及其他 JavaScript 库都使用驼峰法。 变量名不要以 $ 作为开始标记,会与很多 JavaScript 库冲突。 HTML 载入外部 JavaScript 文件,使用简洁的格式载入 JavaScript 文件 ( type 属性不是必须的): 例如
javascript
标签:相加 重复 ESS fixed 鼠标指针 model volatil public console
原文地址:http://blog.51cto.com/13941970/2177439
2021年06月20日 (200)
2021年06月19日 (180)
2021年06月18日 (225)
2021年06月17日 (185)
2021年06月16日 (209)
2021年06月15日 (212)
2021年06月13日 (286)
2021年06月11日 (210)
2021年06月10日 (261)
- 【TSP】基于matlab GUI改进的遗传算法求解旅行商问题【含Matlab源码 926期】 2021-06-20
- 算法:二维数组去重 2021-06-20
- Python中各个数据类型(list,set,dict)的基本函数的时间复杂度 2021-06-20
- Java:Collections 2021-06-20
- C语言:渔夫打鱼晒网问题 2021-06-20
- Java基础语法——注释 2021-06-20
- 数组,通过程序了解 2021-06-20
- 5. Spring配置文件 - 引入其他配置文件(分模块开发) 2021-06-20
- Java面试题(八):List和Set的区别 2021-06-20
- 使用Python求牛顿插值多项式及其差商表 2021-06-20