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----语句的更多相关文章

  1. js:语言精髓笔记6----作用域

    js基础语法:由语句.表达式和变量构成:   语句是主要表达方式:单语句->复合语句(代码块)->程序片段(函数):js中没有单元和程序的概念: 作用域: 语法作用域与变量作用域的区别:前 ...

  2. js:语言精髓笔记12--动态语言特性(2)

    对于括号内: 通过赋值时发生的重写: (Object1 = function() {}).prototype.value = 100; var obj1 = new Object1; console. ...

  3. js:语言精髓笔记11--动态语言特性(1)

    语言:程序最终被表达为数据(结构)和逻辑(算法),命令式和说明式/函数式语言分别从这两方面分类: 动态:在语言陈述时无法确定,必须在计算机执行时才能确定语言关系:JS是完全动态语言,导致其不确定性一般 ...

  4. js:语言精髓笔记9--函数式语言特征

    形式化运算系统的研究: 图灵:提出图灵机形式系统,通过0,1运算系统来解决复杂问题: 冯诺依曼:提出了冯诺依曼体系:即通过修改内存反映运算结果: 阿隆左.丘奇:提出新的运算范型Lambda演算,计算机 ...

  5. js:语言精髓笔记5----语言分类

    计算模型:源于对计算过程的不同认识: 1.基于不同计算模型一般分为://教科书的一般分类 命令式语言: 函数式语言: 逻辑式语言: 面向对象程序设计语言: 2.基于程序本质分类:  //编程的经典法则 ...

  6. js:语言精髓笔记1--标识符与基本类型

    标识符: 命名: 语法以及类型----语法关键字                                           //逻辑 值(的存储位置)----变量和常量           ...

  7. js:语言精髓笔记10--闭包

    闭包:  //JS函数式风格中,在内部保存数据和对外无副作用这两个特性主要就是通过闭包实现的: 函数与闭包: 一个函数是一段静态代码,它是一个代码书写时已经编译期,静态概念:闭包是函数在代码运行过程中 ...

  8. js:语言精髓笔记8--对象系统

    封装: 一把对象系统,封装是由语法解析来实现的,即语法作用域:但js是动态语言,因此只能依赖变量作用域: js的变量作用域只有表达式,函数,全局三种:所以js只能实现public和private两种封 ...

  9. js:语言精髓笔记7----原型继承

    面向对象有三个基本特性:封装,继承,多态:如果都满足的话称为面向对象语言:而部分满足则称为基于对象语言: 数据类型实现模型描述: JavaScript对象模型: 构造过程:函数->构造器 构造器 ...

随机推荐

  1. CDNJS:使用JavaScript CDN加速网站载入速度

    先介绍一下: 内容传递网络(CDN)或者叫内容分发网络,他的作用是给不同区域的访客以其最快的网速.比如,你的网站是开在美国的,但很多访客来自中国,无疑他们会觉得速度很慢,那么,怎么为他们提速呢?简单来 ...

  2. iOS: imageIO完成渐进加载图片

    imageIO完成渐进加载图片 不得不说,人都是有惰性的,一个月又快结束了,这个月虽说有点儿忙,但是绝对不差写几篇博客的时间,有时间去n次桌球厅,有时间玩n把英雄联盟,所谓小撸怡情大撸伤身,这个月游戏 ...

  3. Linux大神必备-文本编辑器

    导读 我们在 Linux 上不缺乏非常现代化的编辑软件,但是它们都是基于 GUI(图形界面)的编辑软件.正如你所了解的:Linux 真正的魅力在于命令行,当你正在用命令行工作时,你就需要一个可以在控制 ...

  4. 混合高斯模型和EM

    <统计学习方法>这本书上写的太抽象,可参考这位大神的:http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006924.html

  5. HDOJ 1863 prim算法 HDOJ 1879

    #include<cstdio> #include<cstring> #define inf 0xffffff ][]; int ans; void prim(int n) { ...

  6. 深入了解PooledConnectionFactory CachingConnectionFactory Sin

    深入理解PooledConnectionFactory CachingConnectionFactory SingleConnectionFactory PooledConnectionFactory ...

  7. Shell编程基础

    写之前我们先来搞清楚为什么要学shell,学习要有目的性shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题shell可以实现自动化管理,让系统管理员的工作变得容易.简单.高效shell脚 ...

  8. java面试总结-(hibernate ibatis struts2 spring)

    说说Hibernate对象的三种状态 Hibernate对象有三种状态,分别是:临时态(Transient). 持久态(Persistent).游离态(Detached). 临时状态:是指从对象通过n ...

  9. C# 代理/委托 Delegate

    本文转载自努力,努力,努力 1. 委托的定义:委托是函数的封装,它代表一"类"函数.他们都符合一定的签名:拥有相同的参数列表,返回值类型.同时,委托也可以看成是对函数的抽象,是函数 ...

  10. Java for LeetCode 150 Evaluate Reverse Polish Notation

    Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...