前端学习笔记! -尊龙游戏旗舰厅官网
作为一个前端新人,看了很多关于前端的博客,觉得有必要去记录点知识点和自己的总结,所以在工作之余写了这篇文章,该博客有引用到其他文章的内容,纯属学习,在此膜拜一下各位前端大大。
一.声明定义
var es6之前的方法 用于定义变量
let es6的新语法 用于定义跨级作用域本地变量
const es6的新语法 用于定义常规变量(定义的变量不会被重新定义)
申明了变量没有赋值打印出来是undefinded,没有申明变量打印出来为null
5.未赋值的变量做计算,它的值为nan
二.作用域
es6支持块级作用域,需要用es6的let属性来声明变量 例如if、settimeout等等
if(true){var a = 1; } console.log(a); // 输出为1当使用let时
if(true){let a = 1; } console.log(a); // a is not defined(…)变量上浮:
javascript会自动将变量的声明上浮到函数或者全局的最前面,所以再代码执行前,变量的赋值就已经为undefined
三.数据类型
6种基础类型
1.bollean(布尔值)
2.string(字符串)
3.undefined
4.null
5.number
6.symbol(es6新增):
symbol是程序创建并且可以用作属性键的值,并且它能避免命名冲突的风险。symbol与其它类型并不完全相像,symbol被创建后就不可变更,你不能为它设置属性(在严格模式下尝试设置属性会得到typeerror的错误)。他们可以用作属性名称,这些性质与字符串类似。另一方面,每一个symbol都独一无二,不与其它symbol等同,即使二者有相同的描述也不相等;你可以轻松地创建一个新的symbol。这些性质与对象类似。
一种对象类型:object
对象和函数的区别在于前者是值的容器,后者是应用程序的过程
四.控制流和错误处理
1.块表达式
块表达式用于控制流,例如if、while、for
es6之后有块域范围:在es6中,我们可以把块域声明var改成let,让变量只作用域block范围。
2.逻辑判断
判断为false的特殊值:false、undefined、null、0、nan、”"。
简单boolean和对象boolean类型有俩种区别 前者是javascript的一种原始类型,它只有俩种值,true和false
使用boolean(value)方法可以强制转换任意值为boolean类型
五.内存空间
1.堆和栈
javascript没有严格的去区分栈内存和堆内存,一般它的所有数据都存取在堆内存里。
堆内存的存取方式可以比喻成书架放书,书柜里的书没有什么先后拿去顺序,可以哪区任何位置的书籍和放回到任何位置,好比在json格式的数据中,我们存储的key-value是可以无序的,因为顺序的不同并不影响我们的使用,我们只需要关心书的名字。
栈内存的存取方式就像一个兵乓球盒子,具有先进后出,后进先出的特点,存储原理如图。
2.变量对象
javascript的执行上下文生成的时候,会创建一个叫做变量对象的特殊对象,javascript的基础数据会保存在该变量对象里
3.引用数据类型与堆内存
js的引用数据类型例如数组array,它们的值是不确定的,引用数据类型的值是保存在堆内存中的对象。javascript不能直接访问堆内存空间,因此我们不能直接操作堆内存空间中的变量。因此我们在操作对象的时候其实是在引用该堆内存的对象,变量对象里保存的只是来自堆内存空间对象的地址,该地址与实际的堆内存值相关联。
当我们要访问堆内存的引用数据类型时,首先从变量对象中获取该对象的地址指针,再通过地址指针来获取堆内存的数据
// demo var m = { a: 10, b: 20 } var n = m; n.a = 15;// 这时m.a为15六.执行上下文(execution context)
每次当控制器转到可执行代码的时候,就会进入一个执行上下文。执行上下文可以理解为当前代码的执行环境,它会形成一个作用域。运行包括三种情况:
1.全局环境
2 函数环境
3 eval:
每次当控制器转到可执行代码的时候,就会进入一个执行上下文。执行上下文可以理解为当前代码的执行环境,它会形成一个作用域。
在一个javascript的程序执行时,会产生多个执行上下文,javascript会以堆栈的方式处理它们。
栈底为全局上下文,栈顶为当前上下文
上下文执行过程如图
上下文部分特点
1单线程
2同步执行,只有栈顶的上下文处于执行中,其他上下文需要等待
3全局上下文只有唯一的一个,它在浏览器关闭时出栈
4函数的执行上下文的个数没有限制
5每次某个函数被调用,就会有个新的执行上下文为其创建,即使是调用的自身函数,也是如此。
执行上下文-生命周期
1.创建阶段
在这个阶段中,执行上下文会分别创建变量对象,作用域链和this指向
2.代码执行阶段
创建完成,开始执行代码,完成变量赋值,函数引用,以及其他代码执行
总结
- 上一篇: 基于keras的深度学习基本概念讲解——
- 下一篇: zabbix每天流量统计脚本