JavaScript系统知识梳理

JavaScript

由于新公司前后端不分离,而且使用的自研框架,迫不得已又将快忘光了的JS再次梳理了一遍,在此分享给大家。

1.基础概念

  1. JS中严格区分大小写。

  2. JS中每一条语句以“ ; ”结尾。

    –如果不写分号,浏览器会自动添加,但是会消耗一些系统资源,而且有时候系统会加错分号,所以必须写。

  3. JS中会忽略多个空格和换行,我们可以利用空格和换行对代码格式化。

2.基础数据类型

  1. 字面量:不可改变的值,如常量。可以直接使用,但一般不会直接使用。(Infinity,NaN)

  2. 变量:可以用来保存字面量,而且变量值可以改变,更加方便使用,所以开发使用变量保存字面量,很少直接使用字面量。

    ​ var ——> 声明变量

  3. 标识符:在JS中所有的可以我们自主命名的都可以称为标识符,例如:变量名,函数名,属性名……

    标识符的命名需要遵循如下的规则:

    1. 标识符中可以含有字母、数字、_、$
    2. 标识符不可以数字开头
    3. 标识符不能是ES中的关键字或保留字
    4. 标识符一般使用小驼峰命名法

    JS底层保存标识符时实际上是采用的Unicode编码,所以理论上讲,所有utf-8中含有的内容都可以用作标识符(包括中文)

  4. 数据类型:字面量类型,一共六种,包括String、Number、Boolean、Null、Undefined、Object

    1. String字符串:JS中使用字符串要用引号引起来,双引号单引号都可以,但是不能混用,引号不可嵌套,双中不可放双,单中不 可放单,但是双中单,单中双。字符串中可以使用\转义。
    2. Number:
      1. 在JS中所有数值都是Number类型,可以使用typeof运算符来检查一个变量的类型。
      2. JS可以表示数字的最大值,Number.MAX_VALUE(1.79 * 10 308),大于这个数值会显示Infinity,表示正无穷。Number.MIN_VALUE:大于零的最小值(-Infinty表示负无穷)。
      3. NAN是一个特殊的数字,表示Not a Number
      4. 在JS中整数的运算基本可以保持精确,计算浮点数可能得到一个不精确的结果,所以不要使用JS做精确计算
    3. Boolean 布尔值
    4. Null:Null类型的值只有一个null,表示一个为空的对象(typeof null :返回Object)
    5. Undefinied:当声明变量而不赋值时,他的值为undefined(typeof undefined :返回undefined)
    6. Object:对象
  5. 强制类型转换:类型转换主要指将其他数据类型转String,Number,Boolean

    1. 其他数据类型转String

      1. 调用被转换数据类型的toString()方法,该方法不会影响原值,会将转换结果返回(注意:null和undifined没有toString方法)
      2. 调用String()函数,对于Number和Boolean底层一样调用toString()方法,对于null和undefined会直接转化为字符串
      3. 加空串,底层是调用String()
    2. 其他转Number

      1. 使用Number()函数

        1. String
          1. 纯数字字符串 —— 数字
          2. 非数字内容 —— NaN
          3. 空串/空格 —— 0
        2. Boolean
          1. true —— 1
          2. false —— 0
        3. null —— 0
        4. undefined ——NaN
      2. 专门对付字符串:其他都转化为NaN

        1. parseInt():字符串 —— 整数
        2. parseFloat():将一个字符串中有效小数内容取出来
      3. JS中,如果要表示16进制的数字,则需要以0x开头。如果需要表示8进制数字,则需要以0开头,如果是要表示2进制数字,则要以0b开头,但不是所有浏览器都支持。

        a = parseInt(a,10):以十进制解析

    3. 其他转Boolean

      1. 使用Boolean()函数
        1. Number:除了0和NaN为false,其他都为true
        2. String:除了空串为false,其他都为true
        3. null / undefined:都是false
        4. 对象:转为true
      2. !!a

3.运算符 / 操作符

  1. + :当对非number的类型的数值运算时,会转为数字运算(除字符串)。转换结果如Number()函数结果。

  2. 任何值做 - 、* 、/ 运算都会转化为Number

  3. &&、||:对Boolean运算会转化为布尔值运算,返回原值(返回那个值与断路判断有关)

    1. 与运算
      1. 如果第一个值为false,返回第一个值
      2. 如果第一个值为true,返回第二个值
    2. 或运算:
      1. 如果第一个值为true,返回第一个值
      2. 如果第一个值为false,返回第二个值
  4. 关系符与非数值运算:

    对于与非数值运算,先转为数值再运算:任何值与NaN做任何比较都为false,如果两侧都是字符串,不会转化成数值比较,而是比较字符编码,比较字符码是一位一位比较的。

  5. 在字符串中使用转义字符输入Unicode编码:\u四位编码(16进制)

  6. undefined衍生自null,所以这两个值做相等判断为true,NaN不与任何值相等,包括他自己,可以用isNaN()判断

  7. 相等\不相等比较会将两者转为同一类型再比较:

    1. ===:全等比较
    2. !==:不全等比较
  8. 条件运算符/三元运算符:

    语法:条件表达式 ?语句1:语句2

    为true执行语句1,为false执行语句2,并返回结果

  9. ,运算符:用来分割多个语句,一般用来声明多个变量

  10. 运算符优先级:与(&)的优先级高于或(|)

  11. 语句:在JS中可以使用{}来为语句分组,同一个{}中的语句我们成为一组语句,他们要么都执行,要么都不执行,一个{}中的语句我们称为一个代码块。JS中的{}只有分组作用,内容完全可见。

4.对象

  1. 对象分类

    1. 内建对象:

      ​ 由ES标准中定义的对象,在任何的ES实现从都可以使用:比如Math,String,Number,Boolean,Function,Object

    2. 宿主对象:

      ​ 由Js的运行环境提供的对象,目前来讲主要指浏览器提供的对象,比如:BOM,DOM

    3. 自定义对象

      ​ 我们自己定义的对象

  2. 创建对象:

    var obj = ne
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值