美文网首页前端面试题
web前端重点内容

web前端重点内容

作者: Aniugel | 来源:发表于2018-11-22 16:33 被阅读0次

    布局、选择器、权重、盒模型、Hack、CSS预处理器,页面加载如何优化

    Flexbox、Document flow 优雅降级与渐进增强

    JavaScript:

    数据类型、运算、对象、Function、继承、闭包、作用域、事件、Prototype、RegExp、JSON、Ajax、DOM、BOM、

    内存泄漏、跨域、异步请求、模板引擎、模块化、Flux、同构、算法、ECMAScript6、Nodejs、HTTP

    ajax的优缺点
    vue angular 小程序 git webpack
    解释一下变量声明提升

    如何跨域访问

    js如何判断一个数组

    作用域

    含义:变量的作用范围
    作用:减少名字冲突,增强代码的可靠性
    定义:
    局部:变量在函数内声明,变量为局部作用域。局部变量:只能在函数内部访问。因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。
    全局:变量在函数外定义,即为全局变量。全局变量有全局作用域: 网页中所有脚本和函数均可使用。如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。JavaScript 变量生命周期在它声明时初始化。局部变量在函数执行完毕后销毁。全局变量在页面关闭后销毁。 你的全局变量,或者函数,可以覆盖 window 对象的变量或者函数。
    局部变量,包括 window 对象可以覆盖全局变量和函数。

    字符串

    字符串无法解析的时候可以用转义字符

    字符串可以是对象,通常JavaScript 字符串是原始值,可以使用字符创建: var firstName = "John",但我们也可以使用 new 关键字将字符串定义为一个对象: var firstName = new String("John")
    空文本 + 数字得到的运算结果都是把数字转成字符串,无论文本有多少个空格。但是空格会计入长度。html会压缩空格

    数字和布尔值相加,布尔值 false 转成 0,true 转成 1

    true+1=2
    

    取模运算的结果符号只与左边值的符号有关:

    var x = 7 % 3; // 结果为 1
    var y = 7 % (-3); // 结果为 1
    var z = (-7) % 3; // 结果为 -1
    

    数字与 null(空值) 相加,null 转化为数字 0:

    var car=null+3+4;    // 结果为7
    
    运算

    多元运算:
    https://c.runoob.com/codedemo/3057

    function test(p){
        var a=5,b=12;
        return p>1?p<b?p>b:p=6:p=3; // 这一行中出现了多个问号和冒号,看起来很乱怎么办呢
    }
    document.write(test(9));//false
    

    三目运算:
    8>5 ? true : false ;
    其他数据类型转换为布尔类型的规则: null、undefined、0、NaN、空字符串转换为false,其他转化为 true。

    1. 取反 !
      首先把数据转化为布尔值,然后取反,结果为 true 或 false。
    <script type="text/javascript">
    var a = [1,2,3];
    var b = "hello";
    var obj = new Object();
    var d;
    console.log(!"");   //true
    console.log(!d);    //true
    console.log(!a);    //false
    console.log(!b);    //false
    console.log(!obj);  //false
    </script>
    
    1. 逻辑与 &&
      JavaScript 中逻辑与和其他语言不太一样,如果第一个操作数是 true(或者能够转为 true),计算结果就是第二个操作数,如果第一个操作数是 false,结果就是 false(短路计算),对于一些特殊数值不遵循以上规则。(个人理解为:如果运算的第一个操作数为true,则返回第二个操作数,反之则返回第一个操作数)
    <script type="text/javascript">
    var a = [1,2,3];
    var b = "hello";
    var obj = new Object();
    var d;
    console.log(true && 10);            //第一个操作数是true,结果是第二个操作,也就是10
    console.log(false && b);            //第一个操作数是false,结果flase
    console.log(100 && false);          //第一个操作数是100,结果flase
    console.log(undefined && false);    //第一个操作数是undefined,结果undefined
    console.log(NaN && false);          //第一个操作数是NaN,结果NaN
    console.log(null && false);         //第一个操作数是null,结果null
    console.log('' && false);           //第一个操作数是空串,结果空串
    console.log(0 && 100);              //结果是0
    console.log(5 && 100);              //100
    console.log(a && b);                //hello
    console.log(obj && 200);            //200
    </script>
    
    undefined和null

    null是一个只有一个值的特殊类型。表示一个空对象引用(一个变量不再指向任何对象地址);可以主动释放一个变量引用的对象,表示
    null是对象所以可以来清空对象,任何变量都可以通过设置值为 undefined 来清空。 类型为 undefined.

    一元运算符 +

    Operator + 可用于将变量转换为数字:

    var y = "John";   // y 是一个字符串
    var x = + y;      // x 是一个数字 (NaN)
    

    相关文章

      网友评论

        本文标题:web前端重点内容

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