JavaScript王者归来02

运算符

注意,减号运算符总是将数值转换为数字.如果有一个转换不成功.结果为NaN.

运算符 * 总会将操作数转换成数值.

% 计算余数

++ –同一般也会自动转换

< > 如果只有一个运算符是数值.那么总是尝试江湖另一个运算数转换为数值.如果两个运算符都是字符串.那么运算符<>,只不过总是试图将另一个运算数转换为字符串,那么将比较他们的unicode数值.如果两个运算数既不是字符串也不是数值.总是尝试将他们转换成数值或者字符串进行比较.两个运算数中中只要有一个被转换成NaN,那么运算符将返回false

运算符==用来检测两个运算数的值是否相等.在JavaScript中,布尔型,数值.字符串是值类型数据.在这种情况下.==将检测元元算数的值是否相同.
如果两个运算符类型不同.那么运算符==尝试进行类型转换,如果true转换为1,false转换为0.如果运算符一个是null,一个是undefined.那么则返回true.三个等号时为false
注意:null>=null true null<=null true

JavaScript中的三元表达式 ?:(和C#中相同)

逗号运算符
x=(i=0,j=1,k=2)等价于
i=0;
j=1;
x=k=2;

对象运算符 in
要求左边的运算数是一个字符串,或者可以被转换为字符串.右边的运算数是一个对象或者数组.如果该运算符左边的值是其右边对象的一个属性名.返回true.利用运算符 in 的特性可以将对象当做一个集合来使用.对象的属性作为集合的元素.对于JavaScript来说,这是一种方便而高效的实现方法.

instanceof:
要求左边的运算数是一个对象,右边的运算数是对象类的名字.如果该运算数左边的对象是右边类或者派生类的一个实例,则返回false.否则返回true.左边是一个对象.右边是类型.

new
根据函数原型创建一个新对象.并调用该函数模型初始化他.

delete
是一个单目运算符,将删除运算数所指定的对象属性.数组元素或者变量.如果删除成功,则返回true.否则返回false.

对象运算符
. 和[] 都是用来存取对象和数组元素的双目运算符.他们第一个运算数都是对象或者数组.他们区别是 . 运算符,将第二个运算数作为对象的属性来读写.而 [] 将第二个运算数作为数组的下标来读写. 运算符 . 要求第二个运算数只能是合法的标识符,而运算符 [] 将第二个运算数可以是任何类型的值甚至undefined.但不能是未定义的标识符.注意,在[]的第二个运算数为对象时.总是先调用他的toString()方法来进行转换.如果转换失败,在调用valueOf() 方法来转换.另外布尔值true和false总是转换成字符串值而不是数值1和0

类型运算符 typeof是一个弹幕运算符,放在一个运算数之前.这个运算数可以是任何类型.返回值是一个字符串.该字符串说明了运算数的类型.typeof运算符对数值,字符串或者布尔值分别返回的是number,string,boolean.对对象数组和null,将返回的是object.对函数,类,闭包返回的是function.如果运算符是未定义或者未赋值,将返回undefined.

void运算符
void是一个一元运算符,可以出现在任何类型的操作数之前.作用是舍弃运算数的值,返回undefined作为表达式的值.使用void(0)生成undefined值

函数调用运算符() 用于函数调用.唯一一个没有固定数目的运算符

switch语句
基本形式
switch(expression)
{
statements
}
其中包含一个或多个case标签. 和c#相同
需要注意的是case 是===,严格等于

while 与do-while与c#用法相同

for的两种用法
第一种普通用法和c#中相同.
第二种:常用来穷举数据的所有元素和遍历对象的所有属性.前面的参数是元素和属性时可枚举的

建议不要在for in中改变值(c#中foreach)
for/in循环并没有指定将对象的属性赋给循环变量的顺序.如果for/in循环的主体删除了一个还没有枚举的属性.那么该属性就不在被枚举.如果循环体定义了该属性.那么循环是否枚举该属性是由JavaScript的实现所决定的.由此可见,for/in循环体内改变枚举对象的属性有可能导致不确定的结果.

break continu return效果和c#相同

with语句
with语句用来暂时修改默认的作用域,基本形式如下.
with(object)
statement
倾向于使用with语句惊险与读取对象的属性,并且经量不要让with语句出现在循环体中.因为可能会执行起来变慢

空语句
如果使用空语句,很容易让其他人认为是bug.可以在代码中使用注释.以清除的说明是有目的这样做的.

数值
number JavaScript与其他语言不同之处在于.不区别整形和浮点型数值.在JavaScript中所有的数值都是由浮点型表示的.JavaScript中可表示的整数精度范围为-2的53次方到2的53次方.在JavaScript中数值作为浮点型存储和表示的.所以将16进制常量赋给一个变量后,他仍然是以浮点型存储和表示的.在JavaScript中,要将变量中的整数类型用16进制方式表示.可以通过调用number的toString(16)方法来完成.

toString 比较实用的方法,括号内接受从2-36整数的参数.作用是将数值表示成参数所指定的数

当一个浮点数大于所能表示的最大值时,结果是一个特殊的无穷大.JavaScript将他输出为infinity.同理.如果比最小负数海啸.输出-infinity.

当JavaScript表达式计算中无法出现数值表示的数值型结果时,总是返回一个NaN.可以理解为一个无法用数值表示的特殊数值.同任何包括他自己在内的都不相等.所以只能用一个特殊的isNaN()方法来检测这个值.另一个内置函数isFinite()当数值为+-infinity或NaN时返回false.否则总是返回true.

JavaScript没有char类型的数组.字符串是表示文本数据的最小单位.

如果必须在字符串中添加一个换行符.可以使用转义字符序列 ‘\n’.同c#相同.\具有特殊的用途.在反斜线符号后加一个字符就可以表示在字符串中无法出现的字符.

要确定一个字符串的长度.可以使用length属性.
对字符串的操作.
charAt(index)可以获取index位置上的字符.charCodeAt(index)方法则可以获取index位置上的字符的unicode编码.
substring和slice方法可以抽取字串.
indexOf(char)方法可以查找指定字符在字符串中第一次出现的位置.
search方法可以查找和匹配字符串.
replace方法可以完成字串的替换.

布尔类型
当布尔类型转换为数值时,true通常被转换为1.而false通常被转换为0.

数组的标准概念是数值的集合.数组中的每一个数值都具有唯一的下标来标识.可以通过下标来访问这些数值.这些数值被称为数组的元素.一个数组可以拥有零个或多个元素.下标通常是0开始的整数.并且一般情况下,下标是连续的.因此数组可以看做是一种有序的集合.或者称之为一个线性表.

由于JavaScript是一种动态类型语言(弱语言).因此数组元素不必具有相同的类型.在数组中.设置属猪的length=0.可以清楚数组中的所有元素.并且定义了创建并生产化数组的常量语法.数组常量是一个封闭在方括内的序列.例如 var a=[1.2,’javascript’,true]

对象的属性可以通过对象运算符.也可以通过运算符[]来访问.point.x和point[‘x’]两种访问方式是等价的.注意前者直接创建x,后者不行.只是形式和概念上有所不同.前者将point当做一个对象.x是属性.而后者将point当做一个哈希表.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值