一、语言特性
        1、预解析:js会把变量的声明(仅仅是声明)提到顶部,但是不会突破作用域。
                alert(a);var a= 12; //结果,undefined
        2、页面无论多长都会进行预解析。
        3、js语言执行步骤:
                读取一个script标签=>预解析=>执行里面代码=>读取下一个script=>预解析=>执行代码
        4、函数也有预解析,但是要注意:当以变量的形式声明的函数,预解析会按照变量的特性走,否则不按照。
                    a();//报错了。
                   var a=function(){
                    alert(1);
                    }
二、严格模式:
    代码前边加‘use strict’【好处】,有作用域,高级浏览器兼容,ie9-不兼容。

                好处:  1. 解决了局部函数中this是 window的bug;
                           2. 解决了不加val 声明变量的bug
                           3.避免在if switch,for while for in 里面定义函数。
                           4.with(元素.style){//严格模式下删除了with.
                               
                            }
               严格模式是有作用域的,
                        1、函数    在函数里面写就是只限于函数。
                        2、script标签
                使用严格模式,'use strict'前边不能有代码

2.2、js基础---预解析和严格模式的更多相关文章

  1. js的预解析

    在ES6之前,变量使用var声明,会存在变量的预解析(函数也有预解析).ES6引了let和const,但是现阶段ES6并没有完全普及,而且很多比较老的代码都还是按照ES5的标准甚至是ES3的标准来书写 ...

  2. 两个实例轻松理解js函数预解析

    js函数预解析 例子1: 先上一段代码,看看能不能写出最终的执行结果. console.log(a); var a = 1; console.log(a); function a(){ console ...

  3. 怎样理解JS的预解析机制

    JS的预解析包括两部分: 1. 变量提升 2. 函数声明 对于变量提升, 可以看下下面这块代码 console.log(name); // undefined var name = "Lil ...

  4. js的预解析详解

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. js之预解析

    一.所谓的预解析就是:在当前作用域中,JavaScript代码执行之前,浏览器首先会默认的把所有带var和function声明的变量进行提前的声明或者定义. 1)var声明的变量在预解析的时候只是提前 ...

  6. js的预解析和作用域

    预解析指的就是,在js文件或者script里面的代码在正式开始执行之前,进行的一些解析工作.这个工作很简单,就是在全局中寻找var关键字声明的变量和通过function关键字声明的函数. 1.寻找 v ...

  7. js的预解析和代码执行相关规则

    JavaScript解析过程分为两个阶段,一个是编译阶段,另外一个就是执行阶段. 1.编译阶段:又称为预解析阶段,在这个阶段JavaScript解释器将完成把JavaScript脚本代码转换到字节码. ...

  8. JS函数预解析(小记)

    一,预解析:寻找var  function  形参     a=undefined    fn = function fn(){ alert(); } 二,逐行解读代码:    1.表达式    2. ...

  9. js代码预解析

    1.var一般用于声明变量,预解析代码的时候,等号后面的赋值过程不会执行,所以预解析时的var变量都是未定义的 2.function声明的函数,预解析的时候,值就是函数里面的内容 例:console. ...

随机推荐

  1. JVM 方法调用之解析

    方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还没有涉及到方法内部的具体运行过程.在程序运行时,进行方法调用是最普遍最频繁的操作,但Class文件 ...

  2. touch和click优先性

    jQuery的touch事件是当用户触摸事件(页面)时触发的. jQuery的click事件是当用户点击元素时触发的. 而事件执行流程是手指点击一个元素,会经过:touchstart --> t ...

  3. 【架构】基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎

    网络爬虫架构在Nutch+Hadoop之上,是一个典型的分布式离线批量处理架构,有非常优异的吞吐量和抓取性能并提供了大量的配置定制选项.由于网络爬虫只负责网络资源的抓取,所以,需要一个分布式搜索引擎, ...

  4. ASP.NET Core URL Rewrite中间件

    URL重写是基于一个或多个预置规则修改请求URL的行为.URL重写在资源位置和访问地址之间创建了一种抽象,这样二者之间就减少了紧密的联系.URL重写有多种适用的场景: 临时或永久移动或替换服务器资源, ...

  5. hdu 1542/1255 Atlantis/覆盖的面积

    1542 1255 两道扫描线+线段树的入门题. 基本没有什么区别,前者是模板,后者因为是求覆盖次数至少在两次以上的,这个同样是具有并集性质的,所以把cover的判断条件更改一下就可以了qwq. hd ...

  6. log(m+n)找第k大

    递归 int find_kth(vector<int>& nums1, int begin1, int size1, vector<int>& nums2, i ...

  7. Java之static静态代码块

    Java之static静态代码块 构造代码块 使用{}包裹的代码区域,这里的代码区域特指位于class{}下面的而不是存在于其他type method(){}这类函数下面的代码区域 public cl ...

  8. 简易 PHP 教程小记

    一.简介: 1.用处广 2.免费 3.PHP Hypertext Preprocessor 二.语法: 1.<?php coders ?> 2.注释:"#" " ...

  9. Oracle数据库中日期/数字和字符之间的转换和计算

    --查出当前系统时间 select SYSDATE from table; --格式转换 -- TO_CHAR 把日期或数字转换为字符串 -- TO_CHAR(number, '格式') -- TO_ ...

  10. Excel的公式:锁定某个区域函数--OFFSET()

    OFFSET(标识位置,偏移的行数,偏移的列数,偏移后锁定的行数,偏移后锁定的列数) 打个比方解释:在xy轴上画一个矩形 标识位置:等同于原点; 偏移的行数:矩形的起始y轴坐标; 偏移的列数:矩形的起 ...