• 诡异js面试题&知识点


     

    ~~~var 定义的变量存在变量提升;

    ~~~同时存在函数声明和变量声明时,函数声明优先级高于变量声明

    ~~~一个非匿名立即执行函数的函数名 相当于 const 定义的,是只读的,修改会报错!!!

    ~~~作用域,查找变量定义,会先在作用域中查找,找不到再去全局查找。

    ~~~arguments 和实参的关系:

    严格模式下,arguments和实参是相互独立的,不会互相影响,但是在非严格模式下,两者会互相影响。

    ~~~数组方法: slice 不改变数组,  splice 会改变原数组!!!

    ~~~for+定时器输出 i, 如果 使用 var 定义, 最终输出的都是最终的值,而不会输出累加值

    ~~~类型相同, 字符串比较大小分为以下几种类型:

    1: 'a' 与 ’100a‘ 这种 比较,由于 会将字符串转成数字形式, a转成数字就是 NaN, NaN与任何类型比较都是 false

    2. ‘99’ > ‘88’,转成数字88和99的比较了

    3. ‘1’< ‘1yasd’ true, 如果字符串存在包含关系,那么包含的大于被包含的!!

    4 ‘77asd’>'66asd' true ,这种的话,数字头部数字大的,字符串也大!!!

    ~~~ + - 号 在js中除了加和减还有正和负的意思  所以: --[负负得正]++1+1 其实就是 ++[正正还是正]1+1 =2!!!

    ~~~

    var a = 10;
    
    {
      // 这里function 会提升,执行一次局部a   = 全局a的操作
      a = 90;
      function a() {
        
    }  
     a = 30;
    这里打印 a= 30
    }
    
    // 外面打印 a = 90
    

      

     ~~~ [1, 2, 3,] + [4, 5, 6]  = [1,2,34,5,6]  =>  因为 数组中最后一个逗号会被省略!! 但是第一个不会 

    =》 【1,2,3】+【,4,5,6】=> [1,2,3,4,5,6]

    ~~~ js 中最大数和最小数 分别是 Infinity 和 -Infinity  

    ~~~ Number 和Bigint 类型的数,一般来说是Bigint 可以表示的数大于 Number,但是 有个特例,就是 Infinity  【typeof Infinity === Number!!!】

    ~~~ 逻辑与和或:

      a || =  b 表示 如果a == true, 赋值a,否则 赋值 b

     a &&= b 表示: 表示 a==true,会将b赋值给a,否则a == a  !!!

    ~~~  [] == ![]  => true  ,空数字逻辑运算 为真!!!,但 值为 0 false值也为0  所以 [] == ![]  => true 。  if([]) {}else{} 不会进入 else ,但是 ![] ==0 => true ,  [] == []   false。

     

  • 相关阅读:
    指数基金估值 明
    指数基金买入规则&卖出规则 明
    指数基金投资中的仓位管理也是可以量化的 明
    指数基金各类型资产配置权重 & 估值区间的划分 明
    指数基金建立底仓 明
    投资书单 明
    pug 接收nodejs 数据 转js对象
    git 常用
    Git代理设置:Cocoapods fatal: 无法访问,Connection refused
    iInput隐私政策
  • 原文地址:https://www.cnblogs.com/Hijacku/p/16409681.html
Copyright © 2020-2023  润新知