zoukankan      html  css  js  c++  java
  • JavaScript读书笔记(3)-操作符、语句和函数

    1、  操作符

    (1)       一元操作符

    前置递增和递减操作符,变量的值都是在语句被求值以前改变的;后置相反

    (2)       位操作符

    在ECMAScript中,对数值进行位操作时,会发生以下转换过程:64位的数值被转换为32位数值,然后执行位操作,最后再将32位的结果转换回64位数值;

    右移分为有符号右移(>>)和无符号右移(>>>)

    (3)       布尔操作符-(!)(&&)(||)

    (4)       全等操作符(===)只在两个操作数未经转换就相等的情况下返回true;

    2、  语句

    (1)       for-in语句是精准的迭代语句,用来枚举对象的属性;若对象为null或undefined,不执行循环体,使用之前,先检测该对象的值不是null或undefined;

    (2)       lable语句-在代码中添加标签,以便将来使用,加标签的语句一般都要与for语句等循环语句配合使用;即与break和continue语句配合使用,指向代码中特定的位置;

    (3)       with语句,将代码的作用域设置到一个特性的对象中,主要是为了简化多次编写同一个对象的工作;不建议使用;

    3、  函数

    (1)       ECMAScript中的函数在定义时不必指定是否返回值;但可以用return返回值,return之后的代码永远不会执行;

    Return语句不带任何返回值时,函数在停止执行后返回undefined;

    (2)       严格模式对函数的限制:

    不能把函数名和参数名命名为eval或arguments;不能出现两个命名参数同名的情况;

    (3)       参数

    ECMAScript函数不介意传递进来少个参数,也在乎传递进来参数是什么数据类型,ECMAScript中的参数在内部是用一个数组来表示的;在函数体内可以通过arguments对象来访问参数数组;

    对于ECMAScript函数来说-命名参数只提供便利,但不是必须的;

    Arguments的值永远与对应命名参数的值保持同步,Arguments对象中的值会自动反映到对应的命名参数;但修改命名参数不会改变arguments中对应的值;因为他们的内存空间是独立的;

    如果只传入了一个参数,那么为arguments[1]设置的值,是不会反映到命名参数中,arguments对象的长度由传入的参数个数决定,不是由定义函数时的命名参数的个数决定的;

    没有传递值的命名参数将自动被赋予undefined值;

    严格模式对arguments的限制:Arguments的值与对应命名参数的值不保持同步;重写arguments的值会导致语法错误;

    ECMAScript中所有参数传递的都是值,不可能通过引用传递参数;

    (4)重载

    ECMAScript函数没有重载,若定义两个名字相同的函数,则该名字只属于后定义的函数;

    总结:对于函数,终于明白了以前看不明白的很多地方,原来都是有规定的;这几天一直都是理论,并且都是书中的原话,其实更多的是去实践,去理解,努力ing;

  • 相关阅读:
    Oracle->oracle单实例Shell脚本[20180122]
    oracle 11g grid软件安装[20180121]
    MySQL-5.7.20主从复制测试[20180110]
    Sonarqube中文插件-Linux[20180105]
    Sonar安装-Linux[20171227]
    (Linux 日常命令)[20171225]
    ThreadLocal的实现机制
    LruCache源码分析
    命令提示符怎么以管理员方式打开
    Eslint 从入门到放弃 http://blog.csdn.net/fay462298322/article/details/74931092
  • 原文地址:https://www.cnblogs.com/xyl-share-happy/p/4553041.html
Copyright © 2011-2022 走看看