JS Day 1

1. 什么是JS?
        是一种(基于对象)和(事件驱动)的(客户端脚本)语言。
        运行环境: 浏览器 (通过浏览器解释执行)
    2. JS产生于哪一年,哪个公司,谁?第一个名字是什么?
        95年、网景、布兰登、liveScript
    3. W3C第一个标准是什么?
        ECMA-262
    4. JS包含哪几部分?
        1. ECMAScript
        2. DOM
        3. BOM
二、页面中如何引入JS?
    1. 行内引入脚本(事件)(不推荐)
    2. 内部引入脚本 <script></script>
    3. 外部引入脚本 <script src=""></script>
        注:外部引入时,script标签中尽量不要写任何内容,如果写了,也不执行。
三、JS中有哪些输出方法?(面试)
    1. alert() : 以警告框的方式输出,执行到alert时,会中断后面程序的执行。
    2. document.write() : 输出在页面中,会影响到页面布局。
    3. console.log(): 输出在控制台中,不会影响用户体验,是程序员最常用的排错工具,它可以输出对象的详细信息。
四、如何换行?
    页面中换行:<br>
    js中换行 :
                 : 空格(8格)
    
    扩展:转义字符
五、注释
    //单行注释
    /* 多行注释 */
六、JS中数据类型有哪些?
    基本数据类型: Number String '' "" Boolean (true,false)
    特殊数据类型: null undefined
    复合数据类型: Object
七、标识符的命名规则有哪些?
    1. 命名中只能包含字母、数字、下划线、$
    2. 不能以数字开头
    3. 不是保留字或关键字
    4. 具有相关含义
    5. 驼峰命名:
        大驼峰:GetElementById
        小驼峰:getElementById
    6. 匈牙利命名法:
        int iNum
        float fNum
                 boo
        字符串  str
        char ch
        Object obj
        function fn
八、什么是变量与常量 ?
    1. 变量:在内存中开辟一块空间,用于存储数据,在程序运行的过程中,这个数据有可能发生变化,所以称为变量。
    2. 常量 :永恒不变的量。 3 true false null undefined "3"
九、如何声明变量?
    1. 显式声明 : var 变量名 = 3,变量名,变量名;
    2. 隐式声明 : 变量名 = 5;
十、如何给变量赋值?
    1. 初始化变量(给变量赋初值) : 声明变量的同时,给它赋值
    2. 先声明,后赋值
十一、运算符
    1.递增递减运算符
        ++ --
        逻辑思想: 从左到右计算,先遇到变量,则先取变量中的值参与其它运算,然后再自增或自减1.如果先遇到++或--,则先将变量中的值+1 或-1,再参与其它运算。
    2.算术运算符
        * : 乘
        逻辑思想:
            1. Number类型之间相乘,正常乘
            2. Number/String与String相乘,先将String类型自动转为Number类型,再相乘。如果是数字字符串可以正常转为数字。如果是含有非数字的东西,转换失败,转换成了NaN,乘NaN结果都是NaN
            3. true : 1 false : 0 null : 0 再计算
            4. undefined/NaN, 结果为NaN
        / : 除
        逻辑思想:同乘法
        注: 非0的数 / 0 : Infinity
         0 / 0 : NaN
        % : 模(取余)
        逻辑思想:同乘法
        - : 减
        逻辑思想:同乘法
        + : 加
        逻辑思想:
            1. 如果加号两边有字符串,则起连接作用,连接成新的字符串。
            2. 除第1条以外,true : 1 false : 0 null : 0
            3. 除第1条以外,undefined NaN 结果为NaN
    3.关系运算符
        > : 大于 < : 小于 >= : 大于或等于 <= : 小于或等于
        逻辑思想:
        1. Number之间比较,正常比
        2. Number与String之间比较,先将String转为Number,再比较
        3. String之间比较: 从左到右依次比较每一个字符 "100" "10"
        4. true : 1 false : 0 null : 0 进行比较
        5. undefined/NaN false
        == : 等于 != : 不等于 === 全等(恒等) !== 不全等(不恒等)
        == 和 != : 只比较结果 3 == '3'
        === 和!== : 先比较数据类型,再比较结果 3 === '3'
        切记:
            console.log(null == 0); //false
            console.log(null == false); //false
            console.log(null == ''); //false
            console.log(null == undefined); //true
            console.log(null === undefined); //false
    4.逻辑运算符(0,false,'',null,undefined,NaN)
        ! : 非
        逻辑思想:非真即假,非假即真
        && : 与
        逻辑思想:如果&&左边表达式的值为true时,则返回右边表达式的值。
             如果&&左边表达式的值为false,短路,则返回左边表达式的值。
        || : 或
        逻辑思想:如果||左边表达式的值为true时,短路,则返回左边表达式的值。
                 如果||左边表达式的值为false时,则返回右边表达式值。
  

5.三元运算符(三目运算符/条件运算符)
格式: 表达式1 ? 表达式2 :表达式3
逻辑思想:先计算表达式1的值,值为true时,执行?后面的表达式2,值为false时,执行:后面的表达式3
6.赋值运算符
1. 简单赋值 =
2. 复合算术赋值 : += -= *= /= %=
逻辑思想:先取运算符左边变量中的值,然后与运算符右边表达式的值进行相应的算术运算,最后将结果再次赋值给左边的变量。
7.特殊运算符
1. typeof :检测数据类型
console.log(typeof 3); //"number"
console.log(typeof '3'); //"string"
console.log(typeof true); //"boolean"
console.log(typeof false); //"boolean"
console.log(typeof null); //"object"
console.log(typeof undefined); //"undefined"
console.log(typeof NaN); //"number"
console.log(typeof typeof 3); //"string"
console.log(typeof typeof 3 + 3 - 4); //NaN
2. new : 创建对象
8. 优先级:
++ -- ! typeof new
* / %
+ -
> < >= <=
== != === !==
&&
||
?:
= *= /= %= += -=
十二、数据类型转换
1. parseInt('字符串',整数) : 将以有效数字开头的字符串转为整数,否则转为NaN
注:第二个参数整数的范围是 2~36 进制
1. 如果省略第二个参数或第二个参数是0时,默认第一个参数是10进制
2. 如果第二个参数 小于2 或大于36时,结果都是NaN
2. parseFloat('字符串') : 将以有效数字开头的字符串转为小数,否则转为NaN
3. Number('字符串') : 将所有有效数字字符串转为数字。否则转为NaN

扩展:
isNaN() :判断是否是NaN,如果是,返回true,否则返回false
eval() : 解析字符串,并返回表达式的结果
十三、代码规范
1. 运算符两边各加一个空格
2. 写在大括号中的语句,要缩近一个tab键

原文地址:https://www.cnblogs.com/pppoe/p/10389362.html