zoukankan      html  css  js  c++  java
  • js基础

    js的声明的变量和其他的语言相似,局部遍历需要使用 var 关键字,如果没有改关键字,很容易被当成全局变量。
    变量的提升:javascript的工作方式是先解析代码,获取所有被声明的变量,然后在一行一行的执行。
    这样的后果是 所有的变量声明的语句都会被提升到代码的头部。
    例如:

    等价于


    js对大写敏感,A 和 a 是2个不同的变量

    如果需要判断2个变量完全相等,需要使用 “ === ”

    js的数组可以塞入任何值,与lua不同的时,数组的下标是从0开始的:下面是声明一个数组

    数组是一种特殊的对象,typeof运算符会返回数组的类型是object。
    js规定数组的键名是字符串,之所以可以用数值读取,是因为非字符串的键名会转化成字符串。

    检查某个键名是否存在的运算符in,适用于对象,也适用于数组。

    js提供的for循环除了基本的for(;;)之外还有 for...in 不仅可以遍历对象,也可以遍历数组,不仅会遍历数组所有的数字键,还会遍历非数组键。
    还有一种数组的forEach方法,也可以用来遍历数组。例如

    数组的空位:当数组的某个元素是空元素,也就是2个逗号之间没有任何值,成为数组的空位。数组的空位不会影响到数组的length属性

    使用forEach方法、for...in结构、以及Object.keys方法进行遍历,空位都会被跳过。
    类似数组对象:如果一个对象的所有键名都是正整数或者零,并且有length属性,就称为类型数组的对象。例如:

    数组的slice方法可以将"类似数组的对象"变成真正的数组

    obj表示一个类似数组的对象,本来是不可以使用forEach()方法的,但是通过call(),可以吧forEach嫁接到obj上面调用。

    但是这种方法比原生的forEach要慢,所以尽量先转成数组,在使用数组的方法
    js的函数和其他变量一样属于一等公民,函数的属性和方法有:
    name属性:

    name属性返回的是function关键字后面的那个名字
    length属性:

    length属性返回的是函数参数的个数,函数参数的个数只与定义函数时的参数的个数有关,与传入的参数无关。
    toString()方法:
    返回的是一个字符串,是整个函数的源码 函数内部的注释也可以返回。
    函数参数的传递方式需要注意的点:
    如果是值传递,在函数体内修改参数值,不会影响到函数的外部。

    如果是址传递,在函数体内修改参数,将会影响到原始值。

    特别需要注意的,如果在函数内部将传入的变量整个变量都替换掉,不会影响函数外部的值。

    js的参数是可以同名的,如果参数同名,则函数取最后一个同名的不被省略的参数

    js允许函数拥有不定数目的参数,于是有了一种机制,允许从函数内部获取所有的参数,需要获取所有的参数,需要使用argument对象。argument对象包含了函数在允许时的所有参数,argument[0]表示函数的第一个参数。argument[1]表示函数的第二个参数.以此类推。
    argument属于一个类似数组的对象,如果需要使用数组的方法,需要使用上文提到的方法将其转化为数组。
    argument对象带有一个callee,返回它所对应的原函数。这个函数在严格模式下是禁用的,因此不建议使用。
    函数的闭包:
    例如:

    函数内在定义一个函数,相当于f2是f1的子节点,子节点是可以访问父节点的变量,反过来是不行的,闭包的最大特点是可以记住诞生的环境,比如f2记录了它的诞生环境f1,所以f2可以访问f1的变量。闭包的好处有2个,一个是可以读取函数内部的变量,另一个就是可以使变量始终保存在内存中,即闭包可以使它诞生的环境一直存在。
    立即调用表达式:在js中圆括号()是一种运算符,跟在函数名后面,表示调用该函数,有时我们在定一个函数时需要立刻调用它,我们可以这么写:

    js中所有的数字都是以64位浮点数形式存储,所有1和1.0是用一个数。
    NaN是js的特殊值,表示非数字,主要出现在将字符串解析成数字出错的场合,例如:
    5 - "x"
    需要注意的是,NaN不是独立的数据类型,而是一个特殊的数值,它的数据类型依然属于Number。

    NaN不等于任何值,包括它本身。
    NaN与任何数运算,包括它自己,结果都是NaN
    NaN在布尔运算时被当成false
    Infinity表示无穷。+Infinity表示正无穷 -Infinity表示负无穷
    Infinity大于一切数值(除了NaN),-Infinity小于一切值(除了NaN)
    parseInt方法:parseInt可以用来进制转化,第一个参数表示需要被转化的字符串,第二个参数表示需要被转化的进制。需要注意的是,如果第一个参数不是字符串,则会被先转化成字符串,在转化成整数。
    parseFloat方法:parseFloat可以将字符串转化成小数,如果不能转化,则会变成NaN.
    isNaN:方法可以判断一个值是否为NaN。isNaN方法可以用来判断一个值是否为NaN。isNaN只对数值有效,如果传入其他只,会被先转化成数值,但是传入字符串的时候,会被先转化为NaN,最后返回true。
    isFinite方法:isFinite方法返回一个布尔值,表示某个值是否为正常的数值。除了infinity,NaN,
    -infinity这三个值,其他的都会返回true。
    对象:js的对象是一组键值对的集合,是一种无序的复合数据集合。
    键名:js的键名都是字符串,如果定义的时候键名不是字符串,则会被自动转化为字符串。

  • 相关阅读:
    【试水CAS-4.0.3】第07节_CASclient配置单点登录
    30分钟,让你彻底明白Promise原理
    【你离硅谷只差一步】网易中国创业家大赛项目火热征集中
    21分钟学会写编译器
    Android 模拟器下载、编译及调试
    GitLab 自动触发 Jenkins 构建
    微服务监控探索
    感觉要火!妹子实地采访网易猪厂程序员七夕怎么过
    延迟任务调度系统—技术选型与设计(下篇)
    使用QUIC
  • 原文地址:https://www.cnblogs.com/BigBabyTang/p/8438200.html
Copyright © 2011-2022 走看看