冷知识!

1、flex-grow:1; flex-grow:2; flex-grow:1;

flex-grow:2;是否是flex-grow:1;的两倍?

答案是否定的:flex-grow ,如果三个块状有基础宽度,那么flex-grow将是(窗口总宽度-三个块基本宽度)/ 份数,即 剩余宽度/份数

2、constructor 指向构造他的函数 ,什么是构造函数?无脑解释new了之后(创建实例)就是构造函数

function TheFunc(){
}
TheFunc.prototype.name="iwen";
TheFunc.prototype.age = "30"
let func = new TheFunc();
console.log(func.constructor)--TheFunc(){}

3、__proto__原型链 逐级向上寻找,直到最后一个没有__proto__寻找结束(最简单的原型链解释)

4、异步-异步分为宏任务,微任务,微任务执行在宏任务前面,什么是宏任务?如:setTimeout(()=>{}) 什么是微任务如new Promise((resolve,reject)=>{})

5、为何报错b is  not defined?以下代码最佳解释-js垃圾回收机制,运行完函数,将会销毁局部变量,b存在的地方是local,而a存在的地方是script,运行完函数后b已经被销毁掉了(函数外部访问不到内部变量的原理其实就是垃圾回收机制)

let a = 2
function thisFunc (){
  let b = 1;
  console.log(a)    
}
thisFunc()
console.log(b)

6、非严格模式,如下代码,声明顺序

()(function(){
var a = b = 10
})
console.log(a)
console.log(b)
//分解上述函数:b=10; var a=b
b在非严格模式下并未声明,则全局变量b = 10;
b的值不会被js销毁,而a的值是局部变量将会被销毁

7、变量提升函数优先var声明,如下输出func is not a funcation---公式var func ---> func = function func ----> func = 123

var --- func同名函数 都将预解析

var func = 123
function func(){
  console.log(func)
  func = 456
  console.log(func)      
}
func()
(function d (num){console.log(num);var num = 20;function num(){}})(100)
//输出顺序
function d(num){
  var num;
  num = function num(){

   }
    
  console.log(num)
  num = 20        
}
d(100)
//由于function同名始终是最高的执行级,自然结果将是function

那么什么时候不会触发预解析呢?

代码块中将不触发预解析,如下

function a (){
  console.log(a1)
  console.log(a2)
  console.log(b1)
  console.log(b2)
  if(false){
  var a1 = 10;
  function b1(){}        
  }
  if(true){
  var a2 = 100;
  function b2(){}    
    }
  console.log(a1)
console.log(b1)
console.log(a2)
consol.log(b2)
              
}
a()
//var 声明 及 function声明都在块中,将不会存在预解析,执行了得才会有值

  

8、apply、call

apply调用方法 function.apply(obj,arg) ,将会改变function指针的指向(this)指向的是obj  
call调用方法function.call(obj,a,b......) 将会改变function指针指向(this)指向的是obj
区别:传参的方式不同,apply arg是一个数组,而call则是字符串

9、匿名函数写法

(function d(a){console.log(a)})(10)
等价于
(function d(a){console.log(a)}(10))
等价于
function d(a){
  console.log(a)  
}
d()

  

  

 



 

posted @ 2023-03-28 10:16  iwen1992  阅读(10)  评论(0编辑  收藏  举报