【js学习笔记-025】-- 表达式和运算符
2013-07-19 17:13
267 查看
原始表达式
对象和数组的初始化表达式
属性访问表达式
用”.”或”[]”来访问,”.”访问的属性是合法标识符的。
如果属性包含空格和标点符号,或是一个数字,则必须使用”[]”
运算符
运算符 | 操作 |
++ | 自增 |
-- | 自减 |
- | 求反 |
+ | 转换为数字 |
~ | 按位求反 |
! | 逻辑非 |
delete | 删除属性 |
typeof | 检测操作数类型 |
void | 返回undefined值 |
*,/,% | 乘,除,求余 |
+ , - | 加,减 |
+ | 字符串连接 |
<< | 左移 |
>> | 右移 |
>>> | 无符号右移 |
<,<=,>,>= | 比较数字顺序 |
<,<=,>,>= | 比较字母表中的顺序 |
instanceof | 测试对象类 |
in | 测试属性是否存在 |
== | 判断相等 |
!= | 不等 |
=== | 恒等 |
!== | 判断非恒等 |
& | 按位与 |
^ | 按位异或 |
| | 按位或 |
&& | 逻辑与 |
|| | 逻辑或 |
?: | 条件运算符 |
= *=,/=,%=,+=,-=,&=,^=,|=,<<=,>>=,>>>= | 变量赋值,或对象属性赋值运算且赋值 |
, | 忽略第一个操作数,返回第二个操作数 |
instanceof要求左操作数是一个对象,右操作数标识对象的类。如果左边不是对象,则返回false,如果右侧不是函数则抛一个类型错误异常。instanceof的判断是依照原型链继承机制,如 o
instanceof f首先计算f.prototype,然后在原型链上找o,找到就是ture,找不到,那么o就不是f的实例,instanceof返回false
eval():它是一个函数,但由于它被当成运算符来对待了,所以在此介绍。它只有一个参数。如果参数是字符串,它会把字符串当成javascript代码编译,如果编译失败则抛出一个语法错误异常。编译成功,则开始执行这段代码,并返回字符串中的最后一个表达式或语句的值,如果最后一个表达式或语句没有值,则返回undefined。关于eval()最重要的是它使用了调用它的变量作用域环境。
如:定义变量x
eval(“x”)返回定义的变量x
eval(“var y=3”) //声明一个新的局部变量
同样可以声明一个局部函数
eval(“function f(){ return x+1}”);
如果在最顶层代码中调用eval(),它会作用于全局变量和全局函数
ECMAScript3不允许eval()别名调用。如果这样做的话会抛出EvalError异常。
别名调用实际上大多数实现上是可以别名调用的。别名调用时会将字符串当成顶层全局代码来执行。可以创建新的全局变量和全局函数,或给全局变量赋值,但不能修改主调函数中的局部变量.
ECMAScript5 规定:直接调用eval()时,它总是在调用它的上下文作用域内执行,其它的间接调用则使用全局对象作为上下文作用域,并且无法读写定义局部变量和函数。
IE9之前没有全局eval一说,当通过别名调用时会抛出一个EvalError异常。但IE的确定义了一个名叫execScript()全局函数来完成全局eval的功能。
严格eval()(当使用”user
strict”):可以查询和更改局部变量,但不能在局部作用域内定义新的变量或函数。
typeof运算符返回值如下:
X | typeof X |
undefined | “undefined” |
null | “object” |
true / false | “boolean” |
任意数字 | “number” |
任意字符 | “string” |
任意函数 | “function” |
任意内置对象 | “object” |
任意宿主对象 | 编译器各自实现的字符串,但不是上述的这些 |
相关文章推荐
- JS学习笔记(7)表达式与运算符
- js学习笔记——表达式和运算符
- Javascript学习笔记(二)Javascript核心之表达式和运算符
- Python学习笔记(3):运算符与表达式
- Java学习笔记―第五章 运算符和表达式
- PHP学习笔记——运算符的优先级和表达式;
- 韩顺平 javascript教学视频_学习笔记34_js正则表达式详解
- Python 学习笔记之运算符与表达式
- JS 正则表达式(学习笔记2)匹配网址url参数
- javascript学习笔记——表达式和运算符
- 蓝鸥Unity开发基础——运算符和表达式学习笔记
- JS学习笔记——正则表达式在replace()函数中的小技巧
- 运算符2—JS学习笔记2015-6-14(第57天)
- Python学习笔记2(02-03):变量+运算符和表达式
- 【JS学习笔记】正则表达式
- JS 正则表达式的相关方法(正则学习笔记1)
- 【菜鸟C++学习笔记】7.运算符与表达式
- 【JS学习笔记】02 对象、函数、变量、运算符
- JS 正则表达式的相关方法(正则学习笔记1)