预解释机制

预解释是毫无节操的一种机制

in:
in:"num"in window,
判断num是否为window这个对象的一个属性,是的话返回true,不是的话返回false

var obj={name:"小白",age:17};
console.log("name" in obj);
>>true
console.log("eat" in obj);
>>false
1、预解释的时候,不管条件是否成立,都要把带var的进行提前的声明

window的预解释:var num;
–>window.num;

案例一
if(!("num"in window)){
>>"num"in window==true
var num=12;
}
console.log(num);
>>undefibed
2、预解释的时候只预解释“=”左边的,右边的是值,不参与预解释

普通表达式:
声明+定义,一般不会报错

案例二
fn();
>>"ok"
function fn(){
console.log("ok");
}
fn();
>>"ok"

匿名函数之函数表达式:
把函数的定义部分当作一个值赋值给我们的变量元素的某一事件
window下的预解释:var fn;

fn();
>>undefibed()
>>报错>>TypeError:fn is not a function
var fn()=function(){
console.log("ok");
};
>>一般做项目推荐匿名函数表达式,因为代码只能放在var的下面,比较容易找错
3、自执行函数:
定义和执行一起完成了

自执行函数定义的那个function在全局作用域下不进行预解释,当代码执行到这个位置的时候定义和执行就完成了

 自执行函数的数据类型:
a.
function(num){}(100);
>>报错
b.
(function(num{}) (100));
c.
~function(num){}(100);
d.
+function(num){}(100);
e.
-function(num){}(100);
f.
!function(num){}(100);
4、函数体中,return后面的代码虽然不执行了,但是需要进行预解释,return后面跟着的是外面要返回的值,所以不进行预解释

一般情况下return 后面的代码不会执行

 案例三
function fn(){
>>预解释:var num;
console.log(num);
>>undefibed
return function(){
};
var num = 100;
}
fn();
5、如果在预解释的时候,如果名字已经声明过了,不需要重新的声明,但是需要重新的赋值

在js中,如果变量的名字和函数的名字重复了,也算冲突

案例四
预解释:
var fn;window.fn;
 fn=xxxfff000;window.fn=xxxfff000

var fn=13;
function fn(){
console.log("ok");
}
案例四拓展
window 预解释:
function fn(){console.log(1);};
>>>声明+定义   fn=xxxfff111
var fn=10;
>>>声明 var fn(不需要重新声明)
function fn(){console.log(2);};
>>>声明(不重复进行)+定义  fn=xxxfff222
>>>综上可得:fn=xxxfff222

fn();
>>2
function fn(){console.log(1);};
fn();
>>2
var fn=10;
>>fn=10
fn();
>>10()
>>报错:>>Error:fn is not a function,
>>后面不进行
function fn(){console.log(2);};
fn();

曾经那样热烈地计划过的远景
那样细致精密的描好了的蓝图
曾经那样渴盼着它出现的青春
_
却始终 始终没有来临
青春并非人生的一段时光
而是一种心态
青春不是粉颊红唇和体魄健壮
而是一种意志的力量
_
富于想象的特质和情感的活力
_
END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值