一、诞生时间

           1995年

二、JavaScript包含内容

            ECMAScript:基本语法及相关对象es(包括我们了解的es3,es5,es6.es7…)

            DOM:文档对象模型,用来操作HTML

            BOM:浏览器对象模型,用来操作浏览器

三、书写方式

            1、书写在script标签里(比较常用)

            2、js文件里

            3、对应时间属性里面(比较少用,针对少代码单一模块)

四、变量定义(使用var关键词声明,区分大小写)

            1、见名知意

            2、只能是对应的字母或数字或下划线等字符(注:不能用数字开头)

            3、一般采用驼峰命名法(第一个单词首字母小写,其他单词首字母大写)

            4、不能用关键字(占用之前的关键词的引用空间)

            5、普通变量首字母小写,常量全大写(const)

            注:函数–>fn

                   正则–>re

五、数据类型(检验值的类型)

            1、number(所有数值)

            2、string(单引号,双引号均表示字符串)

            3、boolean(true or false)

            4、null(是null的情况下)

            5、undefined

注:number型在控制台的颜色为蓝色,字符串颜色为黑色,null和undefined为灰色

       typeof可以查看对应类型(null显示的是object,而undefined是null的对象扩展,属于父子关系)

六、常见类型转换

            1、number

                    1)number–>string

                          number.toString——隐式转换

                    2)number–>boolean

                           Boolean(number)—–非0为true,NaN和0为false

            2、string

                    1)string–>number

                          Number(string)——–直接转换成number,当数值无法解析,结果为NaN

                          parseInt()

                          parseFloat()—>从前到后解析,无数值变NaN

                    2)string–>boolean

                          Boolean(string)——–非空为true(空格或换行也占位置),空字符串为false

           3、undefined,null

                    1)转boolean

                             结果都是false

                    2)转number

                             前者为NaN,后者为0

           4、boolean转number

                            false–>0

                            true–>1

七、运算符和表达式

 1、算术运算符

                  +    –    *    /    %

                  1) ‘ + ‘

                        –两个number相加    正常运算(1+1结果2)

                        –一个string加一个number    拼接(‘123’+1结果1231)

                        注:true+1结果为2,boolean类型和null和undefined小于number,则自动转成number

                  2)’ – ‘

                          –一个string减一个number(‘123’-1结果为122)

                          注:true-1结果为0,undefined-1结果为NaN,null-1结果为-1,null为0

                    3)’ * ‘

                          true * 3 结果为3

                    4)’ % ‘

                          注:大数取余小数,取余结果得到的是余数;小数取余大数,结果得到的是小数。

2、++/–前置,后置

        自增和自减的前置和后置的区别

        前置先执行对应的++(–) 再执行对应的代码

        后置先执行对应的代码 再执行++(–)

注:计算顺序(先算括号里面的 ++或– 再进行乘除取余 再进行+- 再进行比较运算 再逻辑运费 再进行赋值)

3、逻辑运算

        1、与&&

                同为true才true

        2、或||

                有true就true

        3、非!

                做取反操作

4、比较

            >    ,    <    ,    >=    ,    <=    ,    ==    ,    !=    ,    ===(全等,一个东西)

5、赋值

            =    ,    +=    ,    -=    ,    /=    ,*/    ,    %=

6、位运算(转为二进制再进行位的变化运算)

        左移<<  

        右移>>    

        ~去小数

       谷歌面试题:

                怎样快速从2得到8?

                        方案:

                                2转换成二进制为    10

                                8转换成二进制为    1000

                                则进行(2<<2)即左移2位,补0操作,既可实现快速转换

7、三目运算符

                表达式(判断条件)?1:2

                                条件正确,则为1,反之,则为2

8、number扩展:保留小数方法

                number.toFixed(2)即为number数值保留2位小数

八、进制的转换

1、十进制二进制的相互转换

                十进制–>二进制    (除2取余法)

                二进制–>十进制    (对应位数乘2的多少次方相加)

2、十进制转八进制    (除8取余)

3、十进制转16进制    (除16取余)

注:1)将对应8进制,16进制字符串转换为十进制数值:parseInt或parseFloat方法

        2)将10进制数值转换成对应8进制或16进制字符串:toString方法