美文网首页
javascript高级程序设计读书笔记(一)

javascript高级程序设计读书笔记(一)

作者: youngiyang_打码少年 | 来源:发表于2016-09-08 13:44 被阅读45次

    NO.1 script引用

    根据HTML加载顺序原则
    1.script一般引用在body结束标签之前
    2.如果script在header中引用,可以使用defer="defer"这个属性,使得脚本遇到/html后执行(注意,只是延迟执行,但是开始会立即下载)
    3.异步脚本,async属性,告诉浏览器立即下载,但是执行顺序是根据下载完的先后来决定

    NO.2 严格模式

    JavaScript中如果要实现严格模式,在js文件中d顶部加入use strict,这样的话,对某些不安全的操作也会抛出错误

    NO.3 数据类型

    1.Undefined类型,只有一个值,就是undefind,在var声明变量后没有对其初始化,这个变量的值就是undefind
    不过对于声明过的变量x和没声明过的变量y,typeof(x&y),都会返回undefind

    2.Null类型,只有一个值,就是null,如果变量将来用于保存对象,建议将变量初始化为null,值得注意的是undefind == null结果是true

    3.Boolean类型,有两个值,false和true
    转型函数,Boolean(),可以使得其他值转化为布尔值

    4.Number类型
    整数:
    var a = 55 //整数
    var a = 070 //八进制的56(在严格模式下无效)
    var a = 0xA //十六进制的10
    浮点数:
    var a = 1.1
    var a = 1.0(将自动转化为整数)
    NaN 非数值,和任何值都不相等,包括本身
    NaN == NaN //false
    isNaN(),判断参数是否"不是数值"
    isNaN(10) //false
    数值转化:
    有三个函数Number(),parseInt(),parseFloat()
    5.String类型
    转化为字符串toString()
    6.object类型
    var o =new Object()

    Object的每个实例(所有对象)都具有下列属性和方法:
    1.constructor 保存着用于创建当前对象的函数,叫做构造函数,对于var o =new Object()来说,Object()就是构造函数
    2.hasOwnproperty 用于检查给定的属性在当前对象中是否存在
    如:o.hasOwnproperty("name")
    3.isPrototypeOf(object) 用于检查传入的对象是否是传入对象的原型

    1. propertyIsEnumerable("propertyname"),用于检查给定的属性是否能够使用for-in语句
    2. toLocaleString() 返回对象的字符串表示,该字符串与执行环境地区对应
    3. toString() 返回对象的字符串表示
    4. valueOf() 返回对象的字符串,数值或者布尔值表示,通常和toString()返回的值相同

    NO.4 操作符

    a++ 和 ++a
    a++表示递增1,但是当前未赋值到当前变量
    ++a表示递增1,但是已经赋值到当前变量

    一元操作符+
    var a = 25
    a = +a //结果还是25

    一元操作符+放在数值前面,没人任何影响,放在非数值对象前时,会执行Number()方法,将之转化为数值

    乘,除和余数操作符,在参与计算的值不是数值时,后台都会先用Number()转化为数值。

    加性操作符:
    如果只有一个操作数是字符串,那么会把另外一个操作数也转换为字符串,然后拼接起来

    NO.5 函数

    1.函数参数
    JavaScript的函数参数和大多数的其他语言不同,js的函数不介意传递进来多少个参数,也不在乎进来的参数是什么数据类型。
    原因是参数在js内部是一个数组来表示的,函数始终接受的都是这数组,不关心数组里有什么东西

    那么在函数体内,也可以用arguments对面来访问函数的参数,例如:

    function sayHI(name,message){
      alert("hello" + arguments[0] +arguments[1])
    }
    

    所以参数名称只是提供便利,不是必须的。

    利用函数可以传入不同个数参数的特性,可以分别实现适当的功能,例如:

    function doAdd(num1,num2){
      if(arguments.length == 1){
        alert(arguments[0]+10)
      } else if (arguments.length == 2){
        alert(arguments[0]+arguments[1]
      }
    
    }
    

    以上函数的功能是,当传入一个参数时,输出参数+10,当传入两个参数时,输出参数1+参数2
    JavaScript函数无需定义返回值,因为在它可以任何时候可以返回任何值
    JavaScript函数没有函数签名的特性,所有不能重载

    相关文章

      网友评论

          本文标题:javascript高级程序设计读书笔记(一)

          本文链接:https://www.haomeiwen.com/subject/tbmsettx.html