JavaScript:是一种运行在浏览器端的脚本语言
JS的运行环境:浏览器、node、手机、嵌入式、ai、区块链 Java 和JavaScript没有关系
JavaScript包含以下几个部分:
ECMASCript:欧洲计算机制造联合会
BOM:brower object model
DOM:document object model
JS写法
1、行内
2、内部 内部写法
3、外部
JS输出
1、alter
2、console.log()
JS语法规则:
1、区分大小写 HTML不区分
2、忽略空白符(空格、字<tab键>、换行符)css一样
3、注释 //(单行注释不能嵌套) /* */(多行注释)
4、标识符和关键字
变量
进程:
当一个项目运行之后就是一个进程,进程是操作系统分配和调度资源(CPU和内存)的基本单位(工厂)
线程
真正干活的 JS是单线程(一个工人) 默认情况下线程从上到下执行任务
JS单线程是指主线程是单线程:如果主线程遇到一个耗时任务(网络请求数据、读取文件、、、),它就把任务给线程帮忙,线程做完再把结果给主线程
变量:
软件---->目的处理数据
数据如何保存--->保存在内存(小格子)
使用数据--->每个小格子有一个地址,根据地址找到小格子
使用指针比较麻烦--->变量 把每一个小格子起一个别名,既变量
变量=变量名+变量值
声明一个变量:
1、一次声明一个变量 var name ="za" var age="we"
2、一次声明多个 var a,b,s;
3、重复声明
4、遗漏声明
全局变量&局部变量
全局变量和局部变量的分界点是函数
定义在函数里面叫局部变量,函数外面既全局变量
全局变量在函数内外都可以使用,局部变量只能在函数里使用
数据类型:针对不同的数据,分配不同的内存空间--->合理使用内存空间
1、基本数据类型:数字(number)、字符串(string)、布尔(boolean)、undefined.null
2、引用数据类型:object(array,function)
JS代码的解析与执行
1、代码块可以有多个,下面的代码块可以使用上面代码块的数据,上面的不能使用下面的
2、预编译,在JS代码执行之前会有一个预编译
提升变量:提升
3、变量提升 var 变量会提升,没有var的不会
循环变量也可以提升
函数内部价var也会提升,提升到函数内部最前面
4、提升函数
函数声明也会提升,提升到代码段最前面
函数表达式不会提升,它的本质是变量
5、函数定义方法:函数声明 函数表达式
6、数据的存储:
基本数据类型(number、string、):栈区
对于基本数据类型的赋值var b=a;是把a中栈区中的数据取出来一份给了b,此时a和b是相互独立的
引用数据类型:堆区
数组是引用数据类型
7、声明与定义
声明:var a; 定义:var a=1; //声明的同时赋值
8、let和const定义
let:用来定义变量 特点: 1、形成块级作用域(第三种作用域)let声明的变量,只能在let命令行所在的代码块起作用
2、不能提升
3、不会挂在window上
4、暂时性死区(TDZ)
5、不能重复定义
const:定义常量
特点: 1、定义完后,不能再改值(基本数据类型、引用数据类型都不行)
2、不能重复声明
3、不能提升
4、声明时必须赋值
语句: 循环语句:for循环、while循环、do循环