我对JS的理解
JS的认识
JS全名为"Java Script",话说是Brendan Eich为了应付公司才去花费10天时间做出来的。不管这是不是真的,JS到现在已经成为一名程序员的必修课了。而我也在这周去开始学习JS,在这,我来谈谈在学习了近一周之后对于JS的了解。
JS是一门编程语言,在前端和后端中都很重要。它和"html"、"css"都可以在浏览器中打开,但是它们又有不同之处:
- JS不只只可以在浏览器中打开,还可以在别的地方打开。
- 它是一个前端研发师的核心。
JS的知识点
JS的三种写法
- 直接写在"html"中,写在"script"标签中,是一种内部写法。这种写法在我看来在以后的检查中很不方便,不容易检查出错误。
- 写在JS文件中。在"html"中通过"script"标签引入,是行内写法。这种写法容易检查错误,进行调整。
- 直接写在开始标签中,属于内部写法。
基本语法
- 它需要区分大小写,有时候如果出错就可能是你在某个地方忘记区分大小写,导致标签含义不一样了。
- 忽略空白符(比如:空格、换行、tab…)
- 语句后面的分号可加可不加。但我习惯加上,因为在别的地方基本上都是需要加的,这能养成一个良好的习惯。
- 注释 分为单行注释和多行注释。 注释是给程序员看的。
- 标识符和关键字。
变量
变量就是内存中的一个空间
变量名:内存空间的别名
变量值:存储在内存空间中的数据(状态)
分为:
- 全局变量
- 局部变量
它们的分界点是函数;函数内部的变量为局部变量。全局变量可以写在函数内部也能访问到,但局部变量只能在函数内部访问到。
数据
数据:一个软件打开后,界面上有很多的数据,也叫状态,这个状态可以保存在两个地方,一个是内存,一个是硬盘。
项目运行起来,只有把数据加载到内存中才能使用数据;内存中的数据,一断电就没了硬盘上也可以保存数据,硬盘上的数据断电后不会丢失。
内存空间地址:就是一块内存空间的地址,可以通过地址操作它对应恐慌见的数据。
数据类型
这是为了更加合理使用内存空间,基本上所有的编程语言中都提出数据类型的概念,研究针对不同的数据,分配不同的空间。
- 基本数据类型
number 数字;
stying 字符串;
boolen 布尔类型;只有"true"和"false"两个数据;
undefind 没有值;
null 没有值; - 引用数据类型:
object 对象;
array 数组;
fuction 函数;
number
- number是一个数据类型,这个数据类型对应的值有无数个。
- 在JS中number数据类型是不分整数和小数 都是number
- 可以通过typeof查看一个变量值的数据类型
- 最大值 和 最小值(number.MAX-VALUE和number.MIN-VALUE)
- number可以通过不同进制显示
- NaN Not a Number 不是一个数字
- JS中不要对小数运算 ,要运算先转成整数 ; 在JS中,说到数据类型,主要指变量值的数据类型。
typeof是运算符 + - * / 都是运算符
Number叫类,也叫构造器,也叫函数。
string数据类型
- 在JS中 使用‘’ “”把字符串包起来 ;不包 ,JS会给它当成变量
- 单引号不要嵌套单引号 双引号不要嵌套双引号 (“ 外单内双” 和 “外双内单”)
- string数据类型对应的数据有无数个
undefined数据类型
- undefiend是一个数据类型,这种数据类型对应的值是undefiend
- 当一个变量没有赋值 , 它的值是undefiend 这个值的类型是undefiend
类型转化
- 隐式类型转化:在不知不觉中把一个数据类型转化为另一个数据类型。
- 强制类型转化:通过代码强行让其进行类型转化。
代码段:一个"script"标签就是一个代码段;JS代码在执行时,是一个代码段一个代码段进行执行的。
JS代码在执行时的过程
- 预编译阶段:提升
- 把加var的变量进行提升,变量声明会提升,变量赋值不会提升,把变量声明提升到代码段的最前面。
- 把使用function声明的函数进行了提升,提升的是整个函数声明。
- 执行阶段
- 让代码从上到下一行一行的执行。
执行上下文
执行上下文( Execute Context):简称: EC
- EC的作用:给代码提供数据
- 代码分两类:
- 全局代码 函数外面的代码叫全局代码
- 局部代码 一个函数就是一个局部代码
- 全局执行上下文:
- 全局代码在执行时时,就会产生全局的EC。 EG(G)
- 局部执行上下文:
- 函数代码在执行时,就会产生局部的EC。调用一个函数就产生一个EC,调用100 个函数,就产生100个EC。
- EC栈:
- 栈:杯子
- 每产生一个EC就会放到杯子中,说白了,就是杯子中放鸡蛋。
- 栈:先放进去的后出来
- 栈:杯子