1、声明语句

如果用var声明的变量没有初始化,那么这个变量的值会被初始化为undefined。
函数声明语句的语法如下:

 
 
 
4
4
 
 
 
 
 
1
console.log(funcname());     //在此调用该函数正常输出
2
function funcname([arg1 [, arg2 [..., argn]]]) { //要传入的参数
3
    statements    //执行语句
4
}
 
 
函数声明语句通常出现在javascript代码的最顶层,也可以嵌套在其他函数体内。
函数定义语法:

 
 
 
4
4
 
 
 
 
 
1
console.log(funcname); //在此调用该函数 打印undefined ,因为只是函数名提前了,还没执行到函数体。
2
var funcname = function(type) {
3
    statements
4
}
 
 
 函数声明和函数定义的区别:
在javascript解析时,函数声明提升到了当前作用域的顶部,同时包括函数名称和函数体都提前了,然而函数定义只有函数名提前到了当前作用域的顶部,函数体并没有被提前。
2、条件语句
switch语句语法:

 
 
 
14
14
 
 
 
 
 
1
switch(n) {
2
    case expression1:
3
        //执行代码块1
4
        break;
5
    case expression2:
6
        //执行代码块2
7
        break;
8
    case expression3:
9
        //执行代码块3
10
        break; 
11
    default:
12
        //执行代码块4
13
        break;
14
}
 
 
说明:当执行这条switch语句的时候,它首先计算n的值,然后查找case字句中的表达式expression1、expression2等和n的值是否相同(这里的相同是按照“===”运算符进行比较的),相同,就执行这个case所对应的代码块,如果都找不到,那么将会执行default中的代码块。
每个case关键字后面都可以跟随任意的表达式。
3、循环
for/in循环:

 
 
 
3
3
 
 
 
 
 
1
for (variable in object) {
2
    statement
3
}
 
 
for/in循环遍历时,有“可枚举”属性的才会遍历到。但是并非一个对象的所有属性都是可枚举的,通过javascript代码添加到对象的属性是可枚举的,而内部对象的预定义属性(如方法)通常是不可枚举的。
适用于遍历对象属性成员。
4、跳转
(1)标签语句:通过给语句定义标签,就可以在程序的任何地方通过标签名引用这条语句。也可以对多条语句定义标签。如:

 
 
 
4
4
 
 
 
 
 
1
mainloop: while (token != null) {
2
    //代码
3
    continue mainloop;     //跳出该循环,执行下一次循环
4
}
 
 
break和continue是javascript中唯一可以使用语句标签的语句。当需要跳出多层循环的时候,该标签语句就非常有用。
(2)throw语句
当javascript代码运行时错误或者程序使用throw语句就会显式地抛出异常。
如

 
 
 
x

9
 
 
 
 
 
1
function factorial(x) {
2
    if (x < 0) {
3
        throw new Error("x不能为负数");
4
    }
5
    for (var f = 1; x > 1; f *= x, x--);
6
    return f;
7
}
8

9
console.log(factorial(-1));     //传入的参数为负数,会抛出一个Error对象,并显示错误信息
 
 
(3) try/catch/finally 语句
它是javascript的异常处理机制。
具体说明如下:

 
 
 
18
 
 
 
 
 
1
try {
2
    //一般情况下这里的代码会从头执行到尾而不会产生任何问题,
3
    //但有时会抛出一个异常,要么是由throw语句直接抛出异常,
4
    //要么是通过调用一个方法间接抛出异常
5
}
6
catch(e) {
7
    // 当且仅当try语句块抛出了异常,才会执行这里的代码
8
    //这里可以通过局部变量e来获得对Error对象或者抛出的其他值的引用
9
    //这里的代码块可以基于某种原因处理这个异常,也可以忽略这个异常,
10
    //还可以通过throw语句重新抛出异常
11
}
12
finally {
13
    //不管try语句块是否抛出异常,这里的逻辑总是会执行,终止try语句块的方式有:
14
    // 1)正常终止,执行完语句块的最后一条语句
15
    // 2)通过break、continue或return语句终止
16
    // 3) 抛出一个异常,异常被catch从句捕获
17
    // 4) 抛出一个异常,异常未被捕获,继续向上传播
18
}
 
 

span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }.cm-searching {background: #ffa; background: rgba(255, 255, 0, .4);}.cm-force-border { padding-right: .1px; }@media print { .CodeMirror div.CodeMirror-cursors {visibility: hidden;}}.cm-tab-wrap-hack:after { content: ""; }span.CodeMirror-selectedtext { background: none; }.CodeMirror-activeline-background, .CodeMirror-selected {transition: visibility 0ms 100ms;}.CodeMirror-blur .CodeMirror-activeline-background, .CodeMirror-blur .CodeMirror-selected {visibility:hidden;}.CodeMirror-blur .CodeMirror-matchingbracket {color:inherit !important;outline:none !important;text-decoration:none !important;}.CodeMirror-sizer {min-height:auto !important;}
-->
span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }.cm-s-monokai .CodeMirror-guttermarker { color: white; }.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }.cm-s-monokai span.cm-comment { color: #75715e; }.cm-s-monokai span.cm-atom { color: #ae81ff; }.cm-s-monokai span.cm-number { color: #ae81ff; }.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }.cm-s-monokai span.cm-keyword { color: #f92672; }.cm-s-monokai span.cm-builtin { color: #66d9ef; }.cm-s-monokai span.cm-string { color: #e6db74; }.cm-s-monokai span.cm-variable { color: #f8f8f2; }.cm-s-monokai span.cm-variable-2 { color: #9effff; }.cm-s-monokai span.cm-variable-3 { color: #66d9ef; }.cm-s-monokai span.cm-def { color: #fd971f; }.cm-s-monokai span.cm-bracket { color: #f8f8f2; }.cm-s-monokai span.cm-tag { color: #f92672; }.cm-s-monokai span.cm-header { color: #ae81ff; }.cm-s-monokai span.cm-link { color: #ae81ff; }.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }.cm-s-monokai .CodeMirror-matchingbracket {text-decoration: underline; color: white !important;}
-->
li {list-style-type:decimal;}.wiz-editor-body ol.wiz-list-level2 > li {list-style-type:lower-latin;}.wiz-editor-body ol.wiz-list-level3 > li {list-style-type:lower-roman;}.wiz-editor-body blockquote {padding: 0 12px;}.wiz-editor-body blockquote > :first-child {margin-top:0;}.wiz-editor-body blockquote > :last-child {margin-bottom:0;}.wiz-editor-body img {border:0;max-width:100%;height:auto !important;margin:2px 0;}.wiz-editor-body table {border-collapse:collapse;border:1px solid #bbbbbb;}.wiz-editor-body td,.wiz-editor-body th {padding:4px 8px;border-collapse:collapse;border:1px solid #bbbbbb;min-height:28px;word-break:break-word;box-sizing: border-box;}.wiz-hide {display:none !important;}
-->

js权威指南学习笔记(三)语句的更多相关文章

  1. Hadoop权威指南学习笔记三

    HDFS简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考.有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my ...

  2. netty权威指南学习笔记三——TCP粘包/拆包之粘包现象

    TCP是个流协议,流没有一定界限.TCP底层不了解业务,他会根据TCP缓冲区的实际情况进行包划分,在业务上,一个业务完整的包,可能会被TCP底层拆分为多个包进行发送,也可能多个小包组合成一个大的数据包 ...

  3. js权威指南---学习笔记02

    1.JS只有函数作用域,没有块级作用域这个概念: 它有一个特性——声明提前:在同一个函数中不同位置声明的变量,都被提前在函数开始的时候,执行声明操作:在原先位置执行赋值操作: 2.声明的全局变量,相当 ...

  4. js权威指南学习笔记(四)对象

    1.创建对象 (1).通过对象直接量的方式创建 说明:对象直接量是由若干名/值对组成的映射表,名/值对中间用冒号分隔,名/值对之间用逗号分隔,整个映射表用花括号括起来. 如:       5 5   ...

  5. js权威指南学习笔记(二)表达式与运算符

    1.数组初始化表达式 数组直接量中的列表逗号之间的元素可以省略,这时省略的空位会填充undefined.如:       2 2           1 var arr = [1,,,,,6]; 2 ...

  6. js权威指南学习笔记(一)类型、值和变量

    1.数据类型:原始类型(primitive type) 和对象类型(object type) 原始类型包括数字.字符串和布尔值: 除数字.字符串.布尔值.null(空).undefined(未定义), ...

  7. IDA Pro 权威指南学习笔记(三) - IDA 桌面简介

    IDA 的默认桌面如下图 工具栏区域(1)包含与 IDA 的常用操作对应的工具,可以使用 View -> Toolbar 显示或隐藏工具栏 可以使用 View -> Toolbars -& ...

  8. js权威指南---学习笔记01

    1.当函数赋值给对象的属性时,就变为了方法:2.被零整除不报错,只会返回无穷大(Infinity)或者负无穷大.例外:零除以零等于非数字(NaN).3.NaN与任何值都不相等! 4.Javascrip ...

  9. HTTP权威指南-学习笔记

    目录 HTTP权威指南-学习笔记 HTTP: Web的基础 URL与资源 HTTP报文 连接管理 HTTP结构 Web服务器 代理 缓存 集成点: 网关,隧道及中继 Web机器人 识别,认证与安全 客 ...

随机推荐

  1. localstorage在safri下的坑

    在ios10.2中的safri浏览器里无痕模式会导致localstorage不能正常使用 具体解决办法如下: if (typeof localStorage === 'object') { try { ...

  2. 面试笔试(C++部分)

    1.define 和const,inline的区别 define的缺点: 1.边界效应(必须加括号,才能避免边界效应) #define MUL(A,B) A*B 而在使用的时候,这样的调用: ,b=, ...

  3. 如何调用另一个包中的Application

    在项目中要集成Xabber,将它作为一个Lib, ..... Xabber 原有代码 /** * Base entry point. * * @author alexander.ivanov */ p ...

  4. [转]IOS应用程序多语言本地化解决方案

    最近要对一款游戏进行多语言本地化,在网上找了一些方案,加上自己的一点点想法整理出一套方案和大家分享! 多语言在应用程序中一般有两种做法:一.程序中提供给用户自己选择的机会:二.根据当前用户当前移动设备 ...

  5. Idea中更改主题后xml配置文件局部黄色背景颜色去除

    相信很多小伙伴和我一样一样的,喜欢更换Idea的主题,但是细心的小伙伴就发现了,每次更改主题后xml配置文件就会局部产生黄色背景颜色,对于强迫症患者真的是够了,网上也有部分文章,但是不够详细,也跟Id ...

  6. shell (2) 时间处理

    获取当前的时间,并输出 #!/bin/bash if [ $# -ne 1 ];then echo "input an dmesg time" exit 1 fi unix_tim ...

  7. mybatis中调用游标,存储过程,函数

    在ibatis和Mybatis对存储过程和函数函数的调用的配置Xml是不一样的,以下是针对Mybatis 3.2的环境进行操作的. 第一步配置Mapper的xml内容 <mapper names ...

  8. jmeter调试脚本之变量参数化

    前言 对于参数化,觉得用得最多的应该是csvread函数.csv data config以及用户自定义变量(前一篇文章已经进行了讲解)控制器这几个 案例:bugfree ,提交bug,参数bug名称和 ...

  9. 解决display none到display block 渲染时间过长的问题,以及bootstrap模态框导致其他框中input不能获得焦点问题的解决

    在做定制页面的时候,遇到这么一个问题,因为弹出框用的是bootstrap的自带的弹出框,控制显示和隐藏也是用自带的属性控制 控制显示,在触发的地方 例如botton上面加上 data-toggle=& ...

  10. iOS设备的屏幕分辨率

    全部列在这里吧.方便自己方便别人.保持更新…… iPhone: iPhone 1G320x480 iPhone 3G320x480 iPhone 3GS320x480 iPhone 4640x960 ...