JavaScript权威设计--JavaScript表达式与运算符,语句(简要学习笔记六)

1.delete是一元操作符,用来删除对象属性或者元素。

var a={
    x:1,
    y:2
}
delete a.x;    //删除x属性
“x”in a    //false;a对象中已经不存在x属性
alert(a.x)    //undefined;这里还是存在“东西”的

就如:

var b=[1,2,3];
delete b[0];
b.length    //3;还是3,虽然上面已经删除了b[0]

 

2.void运算符

void忽略操作的值,因此在操作数具有辅助作用的时候使用void来让程序更具语义

例子:

 

   void 3    //undefined
    void 3+5    //NaN;void的优先级比+高
    void (3+5)    //undefined

 

正如我们常在这里见到的一样:

<a href="javascript:void(0)"></a>
//或
<a href="javascript:void 0"></a>

这样使得<a>标签点击没有任何反应。只是具有手的形状而已。

我们也常见到这样的情况:

<a href="#"></a>

这个指的就是该页面本身。

一般用于anchor(锚点)标记定位。    

如:

AA
<br>AA
<br>AA
<br>AA
<br>AA
<a name="BB">BB</a>
<br>AA
...
<br>AA
<br>AA
<a href="#BB">定位到BB</a>
//可直接跑到BB处

还有一种是这个写法也可以滚动到顶部:

<a href="javascript:document.body.scrollIntoView()">使得整个body区域可以看见</a>

 

3.逗号(,)运算符

for(var i=0,j=10;i<j;i++,j--){
    console(i+"   "+j);
}

 

 

4.function

在定义函数的时候,并不会执行函数体内部的代码,它和调用函数时待执行的新函数对象相关联。

 

5.for/in

for(v in object)

解释:在for/in语句中,JavaScript解析器先计算object表达式,如果表达式为null或undefined,JavaScript解释器将会跳过循环并执行后续代码。

如果表达式等于一个原始值,这个原始值将转换为与之对应的包装对象。

然后依次枚举对象的属性来执行循环。然后在每次循环前,JavaScript都会先计算v表达式的值,并将一个字符串付给它。

 

6.跳转语句

break语句是跳转到循环或其他语句的结束。(存在于循环与switch语句中合法)

continue语句是终止本次循环的执行,并开始下一次循环的执行。(存在于循环中合法)

return语句让解释器跳出函数体的执行。(存在于函数体内合法)

 

7.标签语句

由标识符和冒汗组成:

identifier: statement

给语句定义标签,就可在程序任何地方通过标签名引用这条语句了。

如下:

maten:while(i!=null){
    ...
    continue maten;//跳到下一次循环
    ...
}

 转载:http://www.cnblogs.com/zqzjs/p/4802288.html

时间: 2024-11-10 05:21:47

JavaScript权威设计--JavaScript表达式与运算符,语句(简要学习笔记六)的相关文章

JavaScript权威设计--命名空间,函数,闭包(简要学习笔记十二)

1.作为命名空间的函数 有时候我们需要声明很多变量.这样的变量会污染全局变量并且可能与别人声明的变量产生冲突. 这时.解决办法是将代码放入一个函数中,然后调用这个函数.这样全局变量就变成了 局部变量. 如: function my(){ } my(); //别忘记调用 这段代码定义了一个单独的全局变量:名叫"my"的函数. 我们还可以这么写,定义一个匿名函数: (function(){ //这里第一个左括号是必须的,如果不写,JavaScript解析器会将 //function解析成函

JavaScript权威设计--JavaScript函数(简要学习笔记十)

1.函数命名规范 函数命名通常以动词为前缀的词组.通常第一个字符小写.当包含多个单词时,一种约定是将单词以下划线分割,就像"like_Zqz()". 还有一种就是"likeZqz()".有些些函数是用作内部用的或者为私有函数通常以一条下划线为前缀,就像"_zqzName()".   2.以表达式方式定义的函数 如: var zqz=function (){ return "zhaoqize"; } 在使用的时候必须把它赋值给一

JavaScript权威设计--JavaScript函数(简要学习笔记十一)

1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScript构造函数调用的语法是允许省略实参列表和圆括号的. 如: var o=new Object(); //->等价于 var o=new Object;   第四种:使用call()与apply()间接调用(放在后面详细说明)   2.函数的实参与形参--可选形参 先看一个例子: function g

JavaScript权威设计--JavaScript表达式与运算符(简要学习笔记五)

1.3种原始表达式     1.直接量:    1.23    //数字直接量                         "hello"    //字符串直接量                         ...     2.保留字构成的原始表达式:         true    //返回布尔值:真         false    //假         null    //返回一个值:空     3.变量:         i    //返回变量i的值        

JavaScript权威设计--JavaScript对象(简要学习笔记七)

1.with语句 语法: width(object){ statement } with语句可用于临时扩展作用域链.作用域链可以按序检索的对象列表,通过它可以进行变量名解析. with将object添加到作用域链的头部,然后执行内部statement,最后把作用域链回复到原始状态.   但是:with语句要尽量避免使用.有with代码的语句难以优化,且运行的更慢. 在对象嵌套跟多层次的时候通常会使用with来优化. 如: document.forms[0].address.value //->

JavaScript权威设计--JavaScript类型,值,变量(简要学习笔记三)

1.负号是一元求反运算 如果直接给数字直接量前面添加负号可以得到他们的负值     2.JavaScript中的运算超出了最大能表示的值不会报错,会显示Infinity. 超出最小也不报错,会显示-Infinity. 运算出的结果如果是个非数字的值得时候,用NaN表示.   3.字符串直接量拆分成数行 ECMAScript3中,字符串直接量必须下载一行中,而在ECMScript中,字符串直接量可以拆分成数行,每行必须以反斜线(\)介绍. 如:"two\lines"       &quo

JavaScript权威设计--JavaScript脚本化文档Document与CSS(简要学习笔记十五)

1.Document与Element和TEXT是Node的子类. Document:树形的根部节点 Element:HTML元素的节点 TEXT:文本节点   >>HtmlElement与HtmlDocument a:HtmlElement对象表示HTML中的一个个元素. b:HtmlDocument对象表示 HTML 文档树的根.HTMLDocument 接口对 DOM Document 接口进行了扩展,定义 HTML 专用的属性和方法.   >>HTML的DOM对象 a:DOM

JavaScript权威设计--JavaScript数组(简要学习笔记九)

1.数组的创建 如: var a=[1.1,null,"a"]; var b=[1, ,3]; //中间的那个元素是undefined var c=[ , , ] 这里c.length你是不是以为是3? 哈哈,长度应该是2.因为数组直接量的语法允许有可选的结尾逗号.   2.数组索引的其他种类 a[-1.23]=true    //创建一个名为-1.23的属性 a["1000"]=0    //如果是字符串,它就转换为数组的索引 a[1.000]    //和a[1

JavaScript权威设计--JavaScript变量,作用域,声明提前(简要学习笔记四)

1.宿主对象与宿主环境 宿主对象:由ECMAScript实现的宿主环境提供的对象,可以理解为:浏览器提供的对象.所有的BOM和DOM都是宿主对象.   宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序.如:web浏览器等.   2.日期的转换 var now =new Date(); typeof(now+1) //string typeof(now-1) //number now==now.toString(); //true now>(now-1)