JS一些简单基础知识
js的三种链接方式
1,引入外部JS样式
<script src="./out.js"></script>
2,行内样式
3,``写入<script>
js变量中有全局变量和局部变量
写在函数外面的一定是全局变量写在函数里面的是局部变量。
JS的函数问题
声明一个函数,必须调用函数,如果不调用函数相当于函数没有写,如果没有加var,此时这个变量只能是全局变量,不管在函数外还是函数内。
JS中的数据类型
数据类型分为基本数据类型和引用数据类型,6大基本数据类型有Number,String,Boolean,Undefined,Null,Object.
引用数据类型有object对象,array数组,function函数
typeof查看数据类型(属于运算符)
数据转化有两种,隐式类型转化和强制类型转化。
js代码执行时分两个阶段
1)预编译阶段
2)代码执行(一行一行执行)
预编译阶段提升,把加var的变量进行提升(变量声明会提升变量的赋值是不会提升,提升到代码最前面)。把使用function声明的函数进行提升(把使用function定义的函数进行提升,提升的是整个函数定义。如果函数在判断语句中,只提升函数的名,不提升的函数体)
需要理解声明变量和定义变量,声明函数和定义函数的概念。
代码执行时,会产生一个执行上下文(EC);
代码分两类,全局代码和局部(函数)代码,函数外面的代码叫全局代码,一个函数就是一个局部代码。全局执行上下文;全局代码在执行时,产生全局的EC。
局部执行上下文;调用函数代码产生一个局部EC。
EC放在EC栈中,每产生一个EC就会放到EC栈中。执行完毕如果没有闭包形成,就会消失。
全局代码在执行时,会创建一些全局变量,全局函数,这个全局数据会被储存到一个VO的区域,如果变量名没有加var 是不会在vo里面。但会在window全局对象中。
给变量赋值是把栈空间的数据拿出来赋值给别人,不是堆空间的数据。
JS中一些常见的关键词
看见{}就是容器,引用数据类型也可以看做容器。其中基本数据类型数据储存在栈中,引用数据类型数据储存在堆中。
一些变量名的修饰符
let
1) let声明的变量没有提升。
2)let配合{}也可以形成块级作用域。
3)使用let声明的变量不会挂载到GO(window)上
4)let不能重复使用
const
1)const是声明一个常量
2)使用const声明的常量不会挂载到GO上
3)也会形成块级作用域
4)使用const不能重复声明
5)const声明常量必须赋值
函数表达式(本质是变量 变量的值是函数)
在局部代码EC中执行
1)先传参
2)在赋值
3)在代码执行
上一篇: 冠捷发布G90系列游戏显示器:三面超窄边框/144Hz刷新率
下一篇: 基础备忘