博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
速读《Javascript模式》(一)(简介、var的变量提升以及es6新规范的let)
阅读量:4982 次
发布时间:2019-06-12

本文共 1266 字,大约阅读时间需要 4 分钟。

本系列为博主开的新坑,主要是对书的一些缩写和概括,加上博主自己的一些理解,提取出的一些书的主要内容。

 

模式

 

模式是指一个通用问题的解决方法,一个模式不仅仅是一个可以用来复制粘贴的代码解决方案,更多的提供了一个更好实践经验,有用的抽象化表示和解决一类问题的模板。

 

模式

l  设计模式

l  编码模式

l  反模式

 

 

Javascript

 

面向对象的弱类型语言

 

①    非对象(数值、字符串、布尔值)-> 对象

②    定义一个变量即在处理对象

(1)变量会自动成为内置对象的一个属性,成为激活对象

(2)该变量=伪类,因为它拥有其自身的属性,该属性决定了该变量是否可以被修改,被删除和在一个for-in循环中进行枚举

*在es3中没有对外提供

*在es5中提供符方法操纵

 

函数对象—方法

 

基本

一、全局变量

*应避免全局变量的使用 
*采用单一var模式
隐式创建:

1、变量未声明便引用

2、带有var声明的链式赋值

隐含全局变量与明确定义的全局变量有细微的不同,区别在于delete是否能删除

  • 使用var创建的全局变量不可删除
  • 不使用var创建的隐式全局变量可以删除
*es5 严格模式下 没有声明就引用的变量会报错
访问全局对象采用
var global = (function(){                return this;            }());
凌散变量
凌散变量存在变量提升和作用域的问题
//反模式        myname = "global"; //全局变量        function func() {            alert(myname); //未定义            var myname = "local";            alert(myname); //局部变量        }        func();
相当于
myname = "global"; //全局变量        function func() {            var myname;            alert(myname); //未定义            myname = "local";            alert(myname); //局部变量        }        func();
结果为
es6 的let 和 const不存在变量提升 顺便测试一下
myname = "global"; //全局变量        function func() {            console.log(myname); //未定义            let myname = "local";            console.log(myname); //局部变量        }        func();
报错啦 
未完待续~

转载于:https://www.cnblogs.com/suedar/p/8506327.html

你可能感兴趣的文章
HDU 1869 六度分离【floyd】
查看>>
20150929创建数据库,表,增删改查
查看>>
angularJs 问题
查看>>
Elasticsearch学习记录(入门篇)
查看>>
matlab plot用法
查看>>
pgsql 服务遇见的问题记录
查看>>
数据库练习题
查看>>
软件工程过程 第4章 瀑布模型应用实例
查看>>
Tomcat启动Creation of SecureRandom instance卡住解决办法
查看>>
poj 2000 Gold Coins
查看>>
开通博客了
查看>>
BZOJ 1863: [Zjoi2006]trouble 皇帝的烦恼( 二分答案 )
查看>>
try catch
查看>>
slf4j
查看>>
C#语言和SQL Server数据库技术_程序数据集散地:数据库
查看>>
ES6学习之变量的解构赋值
查看>>
PHP 生成图片缩略图函数
查看>>
Boost Bimap示例
查看>>
ESLint 使用入门
查看>>
流水作业调度
查看>>