js小结
程序员文章站
2024-01-20 19:49:46
...
JS初学者小结
JS:全称JavaScript,简称js,是一种编程语言,通常运行在浏览器上,还可以运行在其它的环境中。与HTML和CSS一起用于web网页设计。
js简单作用:
- 开发网站
- 开发app
- 小程序
- 游戏开发 小程序游戏 网页游戏
- 写后端 node.js
- 嵌入式
- 区块链
网页中引入js的三种方法:
- 把js代码写在开始标签中,当成开始标签的属性(行内写法)
- 把js写在HTML文件中 学习时通常就写在script标签中(内部写法)
- 把js代码写在js文件中,然后在HTML文件中通过script标签引入,写项目时通常把js写在一个单独的文件中。(外部写法)
任何一种编程语言都有其自己的语法,js也不例外。
- js敏感区分大小写,var a=1;var A=1
- 忽略空白符(空格 换行 tab)
- 语句分号可加可不加,一般情况下都加上
- 注释 单行注释(在需要注释的语句前面添加 \\)和多行注释(/*符号中间即为注释内容 */)
- 关键字和标识符
- 变量和数据类型
- 运算符和表达式
js中的变量
数据:一个软件打开后,界面上有很多的数据,也叫状态,可以保存在两个地方,内存和硬盘
项目运行起来,只有把数据加载到内存中,才能使用数据。
变量:内存中的一个空间
变量名:内存可加的别名,对变量名的操作就是对内存空间的操作
变量值:存储在内存空间中的状态(数据)
变量分类:全局变量和局部变量。分界点是函数,只要把变量写在函数里面就是局部变量,只要写在函数外面就是全局变量。
全局变量和局部变量特点:在函数内部都能访问到全局变量;局部变量只能在函数内部访问到。
数据类型
基本数据类型:number(数字)、string(字符串)、boolean(布尔类型)、undefined(未定义值)、null(空值)
引用数据类型:object(对象)、array(数组)、function(函数,在js中函数也是一种数据类型)
number数据类型
1)number是一个数据类型,该数据类型对应的值有无数个。
2)在JS中number数据类型是不分整数和小数的,都是number
3)可以通过typeof查看一个变量值的数据类型
4)有最大值 和 最小值
5)number可以通过不同进制显示 进制:10进制 2进制 8进制 16进制
6)NaN(一种数据类型) Not a Number 不是一个数字
7)JS中不要对小数运算 要运算先转成整数 否则得到的结果往往不对
string数据类型
1)在JS中 使用‘’ “”把字符串包起来 不包 JS会给它当成变量
2)单引号不要嵌套单引号 双引号不要嵌套双引号 外单内双 外双内单
3)string数据类型对应的数据有无数个
boolean数据类型
1)boolean数据类型对应的值就两个 true false
2)true 和 True 不一样 js是区分大小写的
undefined数据类型
1)undefiend是一个数据类型,这种数据类型对应的值是undefiend
2)什么时候会出现undefined?
答:一个变量没有赋值,它的值是undefiend,而且这个值的类型是undefiend。一个函数没有返回值,也是返回undefined
js中的数据类型转化
数据类型转化:
隐式类型转化:静悄悄地,不知不觉地就进行了类型转化
强制类型转化:写代码进行转化
在JS中,下面的值转成false,其它值都转成true:
0 -0
""
undefiend
null
前提:在JS中,运算符两侧需要保存数据类型一致,如果不一致,JS解释器会帮你把一个数据类型转成另一个数据类型。
代码段
一个script标签就是一个代码段。
JS代码在执行时,是一个代码段一个代码段执行。
JS代码在执行时分两个阶段:
1)预编译
2)代码执行
每一个阶段做的事情是不一样的。
预编译: 提升
把加var的变量进行提升,变量声明会提升,变量的赋值是不会提升
提升到了代码段最前面
把使用function声明的函数进行提升 提升的是整个函数声明
代码的执行:
一行一行执行
初步了解执行上下文( Execute Context)
执行上下文( Execute Context): EC
EC的作用:给代码提供数据
代码分两类:
全局代码 函数外面的代码叫全局代码
函数代码 一个函数就是一个局部代码
全局执行上下文:
全局代码在执行时时,就会产生全局的EC EG(G)
局部执行上下文:
函数代码在执行时,就会产生局部的EC。调用一个函数就产生一个EC,调用100个函数,就产生100个EC。
EC栈:
栈:像杯子
每产生一个EC就会放到杯子中,就像是杯子中放鸡蛋。
栈:先放进去的后出来
数据的存储
内存分堆内存和栈内存
在JS中,基本数据类型存储在栈中,引用数据类型存储在堆中
定义变量和声明变量:
定义变量:var a = 110; 定义 = 声明+赋值
声明变量:var a = 110; 说的声明仅仅是说var a 后面是赋值
加var的变量和没有加var的变量的区别
1)在全局代码中,加var会提升,没有var的不会提升。
2)不管加没加var的全局变量,都会作为window的属性
3)没有加var的变量,只能作为全局变量,只要是全局变量,肯定是window的属性
4)加var的局部变量,不会作为window的属性
let声明变量
1)let声明的变量没有提升(let声明的变量也提升,仅仅是没有初始化)
2)let 配合 {} 可以形成块级作用域
3)使用let声明的变量不会挂载到GO上
4)使用let不能重复声明
const声明常量
const是声明一个常量(不会改变的量)
1)声明常量不会提升
2)conts 配合 {} 可以形成块级作用域
3使用const声明的常量不会挂载到GO上
4使用const不能重复声明
5 )const在声明常量时,必须赋值
注意:不要使用var来定义变量 ,使用let声明变量
用法:声明变量使用let 声明常量使用const 初学者用var居多
了解函数
函数是任何编程语言都有概念
在JS中定义函数有两种形式
函数定义 和 函数表达式
函数定义 f叫函数名 ()是函数特有的标识 {} 叫函数体
定义 = 声明 + 赋值
函数调用
f()调用函数时,就会把函数体中的代码都执行了
函数的返回值
函数的返回值是返回到了函数调用处
一个函数如果没有返回值,默认返回undefiend