函数 预编译

var str = false + 1;
        console.log(str);//   1
        var demo = false == 1;
        console.log(demo);//  0
        if (typeof(a) && -true + (+undefined) + ‘‘){
            console.log(‘不错‘);
        }
        if (11 + "11" * 2 ==33){
            console.log(‘不错‘)
        }
        !!" " + !!"" -!!false || console.log(‘pork!!‘);
 (window.foo || (window.foo = ‘bar‘))
        console.log(foo)

两个题可以做做看

原文地址:https://www.cnblogs.com/punisher999/p/12150777.html

时间: 2024-08-30 16:00:02

函数 预编译的相关文章

JS函数/预编译

一.函数: 1.函数声明: function test() {}; 2.函数表达式: var test=function () {}; 3.参数: function test(a,b) {        //a,b形参 //var a; //var b; var c=a+b; document.write(c); } test(1,2);       //1,2实参 4.实参列表: arguments[]; 二.预编译: 1.预编译: (1) 创建AO对象:(全局创建的为GO===window)

JavaScript函数——预编译

四部曲 创建AO对象 找形参和变量声明,将变量和形参名作为AO属性名,值为undefined. 将实参值和形参值统一 在函数体内找函数声明,值赋予函数体. 权重按顺序依次增加.以下例子即可体现上述规则 function fn(a){ console.log(a); var a = 123; console.log(a); function a(){} console.log(a); var b = function(){} console.log(b); } fn(1); //f a(){} /

实例讲解js中的预编译

js作为一本脚本语言,可以不经过编译直接运行,但遇到预编译的问题,尤其是变量或函数同名时,这点知识就尤其必要了.为了更好地了解js语言背后的运行机理.笔者采用实例化的方式讲解我理解的预编译.    理解预编译首先要弄清楚两种概念:函数声明和变量赋值. function ledi(){ }//函数声明 这种形式的写法是函数声明,即声明一个函数,脚本在执行之前会做预编译处理. var ledi= function(){ }//变量赋值   这种写法是变量赋值,函数在js语言里也是一种数据,匿名函数作

个人对JavaScript预编译的理解

什么是js的预编译 马上要找工作了,之前学习JS都是很基础的皮毛,作为当前最火热的语言,本人一定是要研究的,然而刚接触到预编译我就快疯了,对于一个脑子不好使的人来说真的太绕了,饶了好久也不知道有没有绕明白,所以先记载下来,以后发现有啥不对的再纠正. 首先,JS解释器在执行一段script脚本时,首先会进行预编译,将代码中声明的变量和函数进行处理,然后才会按代码顺序翻译执行,那么JS在预编译和执行阶段分别进行了些什么操作呢?网上有很多大神的帖子给了说明: 1. 在执行代码前会进行类似"预编译&qu

JS作用域和预编译(转载 学习中。。。)

JS在页面加载过程中顺序执行.但是分块预编译.执行. JS在执行前会进行类似”预编译”的操作,而且先预声明变量再预定义函数. 此时注意,是声明,不是定义,如:var a = 1; 在预编译中,只是执行了”var a”没有赋值,即在预编译结束时a 为undefined. (注意)并不是先全文编译完在执行,而是块编译,即一个script块中,预编译再执行,然后(按顺序)下一个script块,预编译再执行,但此时上一个块中的数据都是可以用的,但下一个块中的函数,声明的变量都是不可用的. 变量没声明就引

js 变量预编译

js是按照顺序执行的: 但是在js中会对var和function进行预编译: alert(show); function show(){ var a; } 比如以上代码,alert就会输出function. 但是对于var的预编译,刚刚是自己理解错了, 如下代码,a输出都是undefined. b会直接报错,b is not defined. alert(a); alert(b); var a; 汇总下要点: 1.js在页面加载过程中顺序执行.但是分块预编译.执行. 2.JS 在执行前会进行类似

预编译、作用域链和闭包理解

在理解预编译之前,首先了解一下JS的解析过程:JS引擎在解析脚本的过程分为两个阶段,预编译和执行,首先预编译然后再从上之下一行一行的执行代码.其次,要了解作用域,作用域是一个变量或者函数能够使用的空间,分为全局作用域和局部作用域,全局变量的作用域为全局作用域,局部变量(函数内部或者ES6块内部的变量)的作用域为局部作用域. 预编译分为全局预编译和函数预编译,我们来详细的了解一下. 全局预编译分为两步: 1.生成全局对象:(Global Object)  GO = {   }: 2.找变量声明和关

JavaScript预编译流程详解

1-JavaScript运行三部曲 1.语法分析2.预编译3.解释执行 语法分析很简单,就是引擎检查你的代码有没有什么低级的语法错误: 解释执行顾名思义便是执行代码了: 预编译简单理解就是在内存中开辟一些空间,存放一些变量与函数 : 2-JS预编译什么时候发生 预编译到底什么时候发生? 误以为预编译仅仅发生在script内代码块执行前 这倒并没有错 预编译确确实实在script代码内执行前发生了 但是它大部分会发生在函数执行前 3-实例分析 先来区分理解一下这2个概念: 变量声明 var ...

JS运行三部曲(预编译)

JS运行的三个步骤: 语法分析 预编译 解释执行 语法分析:通俗来说就是通篇检查你的代码有没有语法错误,有语法错误的话,程序是不会执行的 解释执行:也就是程序读一句执行一句 最重点的也就是预编译了,那么预编译到底是什么?它发什么在什么时候? 先来段代码压压惊 function fn (a) { console.log(a) var a = 123; console.log(a) function a () {} console.log(a) console.log(b); var b = fun