js:语言精髓笔记3----语句
JS语句分类:(注意语句都是有返回值的)
- 声明语句:
- 变量声明语句;
- 标签声明语句;
- 函数声明语句;
- 表达式语句:(表达式加分号)
- 变量赋值语句:具有声明一个变量的隐式效果;
- 函数调用语句;
- 属性赋值语句;
- 方法调用语句;
- 分支语句:
- 条件分支语句;
- 多重分支语句;
- 循环语句:
- for()
- for...in
- while
- do..while
- 控制结构:
- 继续执行子句;
- 中断执行子句;
- 函数返回子句
- 异常触发语句;
- 异常捕获与处理;
- 其他:
- 空语句;
- with语句;
声明语句与赋值语句:
- 声明语句(显示声明)一定就有var,它是语法符号,不是运算符;
- 当语句中既有声明(隐式或显示)又有赋值的时候,等号其实是语法分隔符而不是运算符,固不能用“+=”等 代替;
- 当仅使用赋值语句(变量已经声明),此时等号是运算符,可以用其他运算符代替;
函数调用:
- 具名函数直接调用: funtion foo(){}; foo();
- 匿名函数通过引用调用: foo = function(){}; foo();
- 没有引用的匿名函数调用:
- (function(){}()):强制运算(最大的小括号)符使函数调用运算并执行
- (function(){})():强制运算符运算“函数直接量声明”这个表达式,并返回引用,然后通过函数调用运算符操作引用;
- void function(){}():void调用函数但忽略返回值;
- 注意function(){}(),会被解析成两个语句,固无法执行;
流程控制:一般子句
- 标签声明:标签可以与变量重名,因为它是另外一种独立的语法元素;
- break子句:使用范围:标签化语句(后面必须跟label),循环,switch分支;
- continue子句:仅对循环有意义;可以使用标签,但只能对单个循环语句有意义;因为continue不允许跳转到当前/外层的单个循环语句的起始之外。
- return子句:不指定返回值的话返回undefined,注意和void的区别;
流程控制:异常
- finally语句块总是在try/catch块退出之前被执行,即使有return或break;
js:语言精髓笔记3----语句的更多相关文章
- js:语言精髓笔记6----作用域
js基础语法:由语句.表达式和变量构成: 语句是主要表达方式:单语句->复合语句(代码块)->程序片段(函数):js中没有单元和程序的概念: 作用域: 语法作用域与变量作用域的区别:前 ...
- js:语言精髓笔记12--动态语言特性(2)
对于括号内: 通过赋值时发生的重写: (Object1 = function() {}).prototype.value = 100; var obj1 = new Object1; console. ...
- js:语言精髓笔记11--动态语言特性(1)
语言:程序最终被表达为数据(结构)和逻辑(算法),命令式和说明式/函数式语言分别从这两方面分类: 动态:在语言陈述时无法确定,必须在计算机执行时才能确定语言关系:JS是完全动态语言,导致其不确定性一般 ...
- js:语言精髓笔记9--函数式语言特征
形式化运算系统的研究: 图灵:提出图灵机形式系统,通过0,1运算系统来解决复杂问题: 冯诺依曼:提出了冯诺依曼体系:即通过修改内存反映运算结果: 阿隆左.丘奇:提出新的运算范型Lambda演算,计算机 ...
- js:语言精髓笔记5----语言分类
计算模型:源于对计算过程的不同认识: 1.基于不同计算模型一般分为://教科书的一般分类 命令式语言: 函数式语言: 逻辑式语言: 面向对象程序设计语言: 2.基于程序本质分类: //编程的经典法则 ...
- js:语言精髓笔记1--标识符与基本类型
标识符: 命名: 语法以及类型----语法关键字 //逻辑 值(的存储位置)----变量和常量 ...
- js:语言精髓笔记10--闭包
闭包: //JS函数式风格中,在内部保存数据和对外无副作用这两个特性主要就是通过闭包实现的: 函数与闭包: 一个函数是一段静态代码,它是一个代码书写时已经编译期,静态概念:闭包是函数在代码运行过程中 ...
- js:语言精髓笔记8--对象系统
封装: 一把对象系统,封装是由语法解析来实现的,即语法作用域:但js是动态语言,因此只能依赖变量作用域: js的变量作用域只有表达式,函数,全局三种:所以js只能实现public和private两种封 ...
- js:语言精髓笔记7----原型继承
面向对象有三个基本特性:封装,继承,多态:如果都满足的话称为面向对象语言:而部分满足则称为基于对象语言: 数据类型实现模型描述: JavaScript对象模型: 构造过程:函数->构造器 构造器 ...
随机推荐
- PhpStorm 设置php代码格式
phpstorm 代码格式化方法: 快捷键:Ctrl + Alt + L 设置代码样式:File -> Settings -> Code Style ->PHP 根据个人php代码规 ...
- matlab怎么定义一个数组
A=[];n=input('n=');%数组的长度for i=1:n fprintf('a%.0f=',i); x=input('');%分别输入各个数的值 A=[A,x];endA就可以得到长度为n ...
- Linux/Ubuntu tree 命令以树形结构显示文件夹目录结构
1.安装命令工具 sudo apt-get -y install tree 2.可以查看关于tree命令的帮助信息 $ tree --help usage: tree [-adfghilnpqrstu ...
- NGUIJoysticK
原始的: using UnityEngine; using System.Collections; public class NGUIJoystick : MonoBehaviour { public ...
- [codeforces 509]C. Sums of Digits
[codeforces 509]C. Sums of Digits 试题描述 Vasya had a strictly increasing sequence of positive integers ...
- 跟着百度学PHP[1]-if条件嵌套
权当自己的学习笔记.望大牛们切勿参考.如若发现错误,万望指出! 慕课任务 假设在发工资的时候,不仅判定性别,还要判定男性是否有房,没有房,可以发放住房补贴,对于女性,判定是否怀孕,怀孕还有怀孕补贴. ...
- python setup.py uninstall
I have installed a python package with python setup.py install How do I uninstall it? ============== ...
- SpringMVC请求处理流程
从web.xml中 servlet的配置开始, 根据servlet拦截的url-parttern,来进行请求转发 Spring MVC工作流程图 图一 图二 Spring工作流程描述 ...
- Android 和iOS中 Gesture 和 Touch
先谈谈在开发中遇到的手势问题: 今天在开发android程序时,在 View.OnTouchListener 的 onTouch(View view, MotionEvent motionEvent) ...
- 转载一篇关于ios copy的文章
由于原文创作时间较早,一些内容不实用了,我对其进行了加工,去掉了一部分内容,添加了一点注释. 原文连接 http://www.cnblogs.com/ydhliphonedev/archive/201 ...