javaScriptWord下载.docx
- 文档编号:8598305
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:41
- 大小:545.88KB
javaScriptWord下载.docx
《javaScriptWord下载.docx》由会员分享,可在线阅读,更多相关《javaScriptWord下载.docx(41页珍藏版)》请在冰点文库上搜索。
2.变量是弱类型的
3.每行的分号可有可无.没有就按折行符的末尾作为结尾.
4.注释与java,c,php相同
5.使用{}来封装代码块
6.变量声明不是必须的.
著名的变量命名规则(附录)
只是因为变量名的语法正确,并不意味着就该使用它们。
变量还应遵守以下某条著名的命名规则:
Camel标记法
首字母是小写的,接下来的字母都以大写字符开头。
例如:
varmyTestValue=0,mySecondValue="
;
Pascal标记法
首字母是大写的,接下来的字母都以大写字符开头。
VarMyTestValue=0,MySecondValue="
匈牙利类型标记法
在以Pascal标记法命名的变量前附加一个小写字母(或小写字母序列),说明该变量的类型。
例如,i表示整数,s表示字符串,如下所示“
VariMyTestValue=0,sMySecondValue="
---------------------------------------------------------
数组
a
aValues
布尔型
b
bFound
浮点型(数字)
f
fValue
函数
fn
fnMethod
整型(数字)
i
iValue
对象
o
oType
正则表达式
re
rePattern
字符串
s
sValue
变型(可以是任何类型)
v
vValue
2.2原始值和引用值
在ECMAScript中,变量可以存在两种类型的值,即原始值和引用值。
原始值
存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。
引用值
存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处。
5种原始值类型如下:
●Undefined、
●Null、
●Boolean、
●Number
●String
在许多语言中,字符串都被看作引用类型,而非原始类型,因为字符串的长度是可变的。
ECMAScript打破了这一传统。
Undefined类型
Undefined类型只有一个值,即undefined。
当声明的变量未初始化时,该变量的默认值是undefined。
当函数无明确返回值时,返回的也是值"
undefined"
Null类型
另一种只有一个值的类型是Null,它只有一个专用值null,即它的字面量。
值undefined实际上是从值null派生来的,因此ECMAScript把它们定义为相等的。
尽管这两个值相等,但它们的含义不同。
undefined是声明了变量但未对其初始化时赋予该变量的值,null则用于表示尚未存在的对象(在讨论typeof运算符时,简单地介绍过这一点)。
如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是null。
Boolean类型
Boolean类型是ECMAScript中最常用的类型之一。
它有两个值true和false(即两个Boolean字面量)。
即使false不等于0,0也可以在必要时被转换成false.
Number类型
ECMA-262中定义的最特殊的类型是Number类型。
这种类型既可以表示32位的整数,还可以表示64位的浮点数。
●定义十进制整数variNum=86;
●定义八进制variNum=070;
(了解)
●定义十六进制variNum=0xAB;
●科学计数法varfNum=5.618e7;
varfNum=8-e17(了解)
●定义浮点数varfNum=5.0;
对于浮点字面量的有趣之处在于,用它进行计算前,真正存储的是字符串。
●数字的最大值:
Number.MAX_VALUE
●数字的最小值:
Number.MIN_VALUE
●超过最大值:
Number.POSITIVE_INFINITY(不可参与运算)
●小于最小值:
Number.NEGATIVE_INFINITY(不可参与运算)
●特殊值:
NaN(NotANumber).一般说来,这种情况发生在类型(String、Boolean等)转换失败时。
NaN不等于NaN,可以使用isNaN()方法.
String类型
它是唯一没有固定大小的原始类型。
声明时可以使用单引号或者双引号.因为没有字符类型.
typeof运算符
ECMAScript提供了typeof运算符来判断一个值是否在某种类型的范围内。
可以用这种运算符判断一个值是否表示一种原始类型:
如果它是原始类型,还可以判断它表示哪种原始类型。
对变量或值调用typeof运算符将返回下列值之一:
●undefined-如果变量是Undefined类型的
●boolean-如果变量是Boolean类型的
●number-如果变量是Number类型的
●string-如果变量是String类型的
●object-如果变量是一种引用类型或Null类型的
注释:
您也许会问,为什么typeof运算符对于null值会返回"
Object"
。
这实际上是JavaScript最初实现中的一个错误,然后被ECMAScript沿用了。
现在,null被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。
三ECMAScript语句
if语句
if语句是ECMAScript中最常用的语句之一,事实上在许多计算机语言中都是如此。
if语句的语法:
if(condition)statement1elsestatement2
其中condition可以是任何表达式,计算的结果甚至不必是真正的boolean值,ECMAScript会把它转换成boolean值。
如果条件计算结果为true,则执行statement1;
如果条件计算结果为false,则执行statement2。
还可以串联多个if语句。
就像这样:
if(condition1)statement1elseif(condition2)statement2elsestatement3
do-while语句
do-while语句是后测试循环,即退出条件在执行循环内部的代码之后计算。
这意味着在计算表达式之前,至少会执行循环主体一次。
它的语法如下:
do{statement}while(expression);
while语句
while语句是前测试循环。
这意味着退出条件是在执行循环内部的代码之前计算的。
因此,循环主体可能根本不被执行。
while(expression)statement
for语句
for语句是前测试循环,而且在进入循环之前,能够初始化变量,并定义循环后要执行的代码。
for(initialization;
expression;
post-loop-expression)statement
switch语句
switch语句是if语句的兄弟语句。
开发者可以用switch语句为表达式提供一系列的情况(case)。
switch语句的语法:
switch(expression)
casevalue:
statement;
break;
...
default:
每个情况(case)都是表示“如果expression等于value,就执行statement”。
关键字break会使代码跳出switch语句。
如果没有关键字break,代码执行就会继续进入下一个case。
关键字default说明了表达式的结果不等于任何一种情况时的操作(事实上,它相对于else从句)。
四ECMAScript运算符
4.1ECMAScript一元运算符
void(函数后讲解)
void运算符对任何值返回undefined。
该运算符通常用于避免输出不应该输出的值,例如,从HTML的<
元素调用JavaScript函数时。
要正确做到这一点,函数不能返回有效值,否则浏览器将清空页面,只显示函数的结果。
<
ahref="
javascript:
window.open('
about:
blank'
)"
>
Clickme<
/a>
如果把这行代码放入HTML页面,点击其中的链接,即可看到屏幕上显示"
[object]"
这是因为window.open()方法返回了新打开的窗口的引用。
然后该对象将被转换成要显示的字符串。
要避免这种效果,可以用void运算符调用window.open()函数:
void(window.open('
))"
这使window.open()调用返回undefined,它不是有效值,不会显示在浏览器窗口中。
提示:
请记住,没有返回值的函数真正返回的都是undefined。
4.2i++,i--,++i,--i(跟java中一模一样)
vari=1;
Alert(i++);
//1
Alert(++i);
//3
Alert(i--);
Alert(--1);
4.3一元加法,一元减法(了解)
一元加法本质上对数字无任何影响:
variNum=20;
iNum=+iNum;
alert(iNum);
//输出"
20"
尽管一元加法对数字无作用,但对字符串却有有趣的效果,会把字符串转换成数字。
varsNum="
alert(typeofsNum);
string"
variNum=+sNum;
alert(typeofiNum);
number"
这段代码把字符串"
转换成真正的数字。
当一元加法运算符对字符串进行操作时,它计算字符串的方式与parseInt()相似,主要的不同是只有对以"
0x"
开头的字符串(表示十六进制数字),一元运算符才能把它转换成十进制的值。
因此,用一元加法转换"
010"
,得到的总是10,而"
0xB"
将被转换成11。
4.4ECMAScript位运算符(了解)跟java一模一样.
4.4.1位运算NOT~
位运算NOT由否定号(~)表示,位运算NOT实质上是对数字求负,然后减1,因此25变-26。
variNum1=25;
//25等于00000000000000000000000000011001
variNum2=~iNum1;
//转换为111111*********11111111111100110
alert(iNum2);
//输出"
-26"
还可以使用下面的方式:
variNum2=-iNum1-1;
//输出-26
4.4.2位运算AND&
variResult=25&
3;
alert(iResult);
1"
为什么得到这个结果?
25=00000000000000000000000000011001
3=00000000000000000000000000000011
---------------------------------------------
AND=00000000000000000000000000000001
4.4.3位运算OR|
variResult=25|3;
27"
3=00000000000000000000000000000011
--------------------------------------------
OR=00000000000000000000000000011011
4.4.4位运算XOR
variResult=25^3;
26"
XOR=00000000000000000000000000011010
左移(<
)右移(>
)无符号右移(>
)(了解)
4.4.5ECMAScript逻辑运算符(重要)
逻辑NOT运算符(!
)
∙如果运算数是对象,返回false
∙如果运算数是数字0,返回true
∙如果运算数是0以外的任何数字,返回false
∙如果运算数是null,返回true
∙如果运算数是NaN,返回true
∙如果运算数是undefined,返回true
逻辑AND运算符(&
&
逻辑AND运算的运算数可以是任何类型的,不止是Boolean值。
如果某个运算数不是原始的Boolean型值,逻辑AND运算并不一定返回Boolean值:
∙如果一个运算数是对象,另一个是Boolean值,返回该对象。
∙如果两个运算数都是对象,返回第二个对象。
∙如果某个运算数是null,返回null。
∙如果某个运算数是NaN,返回NaN。
∙如果某个运算数是undefined,返回undefined。
∙//1false&
o==>
false
∙//2true&
o==>
true
∙//3o&
true==>
true
∙//4o&
false==>
∙//5o1&
o2==>
∙//6null&
true==>
null
∙//7NaN&
true==>
NaN
∙//8NaN&
null==>
∙//9null&
NaN==>
∙
∙//10undefined&
undefined
∙//11false&
undefined==>
false
逻辑OR运算符(||)
与逻辑AND运算符相似,如果某个运算数不是Boolean值,逻辑OR运算并不一定返回Boolean值:
∙如果一个运算数是对象,并且该对象左边的运算数值均为false,则返回该对象。
∙如果两个运算数都是对象,返回第一个对象。
∙如果最后一个运算数是null,并且其他运算数值均为false,则返回null。
∙如果最后一个运算数是NaN,并且其他运算数值均为false,则返回NaN。
∙//1false||o==>
o
∙//2true||o==>
true
∙//3o||false==>
∙//4o||true==>
∙//5o1||o2==>
o1
∙//6null||false==>
∙//7null||true==>
∙//8null||undefined==>
undefined
∙//9undefined||null==>
null
4.4.6数学运算符
+-*/%
Vara=“1”+”1”;
//”11”
Varb=“1”+1;
//2
4.4.7ECMAScript关系运算符(重要)
varbResult="
Blue"
<
"
alpha"
alert(bResult);
//输出true
在上面的例子中,字符串"
小于"
,因为字母B的字符代码是66,字母a的字符代码是97。
比较数字和字符串
另一种棘手的状况发生在比较两个字符串形式的数字时,比如:
25"
3"
true"
上面这段代码比较的是字符串"
和"
两个运算数都是字符串,所以比较的是它们的字符代码("
2"
的字符代码是50,"
的字符代码是51)。
不过,如果把某个运算数该为数字,那么结果就有趣了:
false"
这里,字符串"
将被转换成数字25,然后与数字3进行比较,结果不出所料。
4.4.8ECMAScript等性运算符
执行类型转换的规则如下:
∙如果一个运算数是Boolean值,在检查相等性之前,把它转换成数字值。
false转换成0,true为1。
∙如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。
∙如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串。
∙如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。
在比较时,该运算符还遵守下列规则:
∙值null和undefined相等。
∙在检查相等性时,不能把null和undefined转换成其他值。
∙如果某个运算数是NaN,等号将返回false,非等号将返回true。
∙如果两个运算数都是对象,那么比较的是它们的引用值。
如果两个运算数指向同一对象,那么等号返回true,否则两个运算数不等。
全等号和非全等号
等号和非等号的同类运算符是全等号和非全等号。
这两个运算符所做的与等号和非等号相同,只是它们在检查相等性前,不执行类型转换。
4.4.9ECMAScript条件运算符(三元运算符)(跟java中一模一样)
variable=boolean_expression?
true_value:
false_value;
4.4.10ECMAScript赋值运算符
∙乘法/赋值(*=)
∙除法/赋值(/=)
∙取模/赋值(%=)
∙加法/赋值(+=)
∙减法/赋值(-=)
variNum=10;
iNum=iNum+10;
等同于
iNum+=10;
五ECMA对象
ECMAScript引用类型
从传统意义上来说,ECMAScript并不真正具有类。
事实上,除了说明不存在类,在ECMA-262中根本没有出现“类”这个词。
ECMAScript定义了“对象定义”,逻辑上等价于其他程序设计语言中的类。
varo=newObject();
对象分类
1.由ECMAScript定义的本地对象.独立于宿主环境的ECMAScript实现提供的对象.(nativeobject)
2.ECMAScript
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javaScript