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. C语言运算符优先级和口诀 (转)

    一共有十五个优先级: 1   ()  []  .  -> 2   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof 3   ...

  2. 微信公众平台开发(十) 消息回复总结——用其xml模板

    一.简介 微信公众平台提供了三种消息回复的格式,即文本回复.音乐回复和图文回复,在这一篇文章中,我们将对这三种消息回复的格式做一下简单讲解,然后封装成函数,以供读者使用. 二.思路分析 对于每一个PO ...

  3. Vim的使用方法

    导读 Vim是从vi发展出来的一个文本编辑器.代码补全.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器. 一.vi.vim介绍 ...

  4. 跟着百度学PHP[1]-if条件嵌套

    权当自己的学习笔记.望大牛们切勿参考.如若发现错误,万望指出!  慕课任务 假设在发工资的时候,不仅判定性别,还要判定男性是否有房,没有房,可以发放住房补贴,对于女性,判定是否怀孕,怀孕还有怀孕补贴. ...

  5. VS2010编译链接openssl静态库

    最近工作需要使用一些加密算法.之前尝试过cryptopp以及polarssl,听说openssl中的加密模块特别全,并且特别好用.于是想尝试一下. 一.环境配置 下载openssl,我这里使用的是op ...

  6. SpringMVC配置easyui-datagrid

    SprimgMVC的UserController.java @RequestMapping(value = "listUserForJson") @ResponseBody pub ...

  7. nGrinder性能测试平台搭建(LVS压力测试)

    1. nGrinder是什么 nGrinder是一个免费的.开放源代码的Web性能测试平台.运行在应用中间件服务器中运行.它由一个控制端和多个代理端组成.通过控制端(浏览器访问)建立测试场景,然后通过 ...

  8. 在SharePoint 2010 母版页里添加自定义用户控件

    在SharePoint 2010 母版页里添加自定义用户控件(译) 使用自定义用户控件的好处: 1.容易部署:2.易于控制显示或隐藏. (在使用的过程中)可能要面对的问题是:如何在用户控件里使用Sha ...

  9. 使用kettle转换中的JavaScript对密码进行加密和解密

    日常开发中,为了确保账号和密码的安全,时常要对密码进行加密和解密.然而kettle是怎么对密码进行加密和解密的呢? 下面的代码需要再转换中的JavaScript中运行. var encrypted_p ...

  10. BestCoder11(Div2) 1003 Boring count (hdu 5056) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5056 题目意思:给出一条只有小写字母组成的序列S,问当中可以组成多少条每个字母出现的次数 <= ...