运行语言的环境
在编程中,我们就处理这两个东西,数据和函数.
关键词声明创建数据
let
let guang='光'
let,就是js语言里创建数据的关键词,光是数据的名字,=号后面是数据的内容值.同样的还有三个关键词也能创建数据let 创建的数据叫变量,可以变的数据.
const
const创建的数据叫常量,不可以变的数据.如下演示
let guang='光';
guang='暗';//guang被改成了'暗'
const huo='火';
huo='水';//报错Assignment to constant variable.
function
function**和let类似,但它是专门用来创建函数数据的,比如,格式后面就是function后面跟一对括号,小括号接受参数,大括号包含计算过程.
function mingcheng(){}
var
var**其实也和let类似,也是创建变量,但它已经被淘汰了,现在开发中基本不写这个.因为它会跑出作用域,有风险污染全局变量.
作用域数据起作用的区域
一个程序,会有很多创建数据的地方,为了避免变量太多互相冲突,语言环境就弄了个作用域的功能出来,顾名思义,能发挥作用的区域,比如:
有效期:全局数据一直存在,块级内的在执行时创建,执行后销毁
//学校
{
//一班
var xiaozu = '张三';
}
{
//二班
var xiaozu = '李四';
}
document.write(xiaozu)//李四
//此时学校里出现xiaozu的信息,叫李四,因为它是后面创建的,会覆盖
//掉一班的数据,这就叫污染变量,如果用let,就不会出现这个问题,学 //校没有小组信息,它们只在自己的作用域生效
全局
所有地方都可以访问的真全局,某一个块内可以访问的局部全局
块级作用域
if块
whil块
函数块
for循环块
单独块{}
特性
- 层级 (下级作用域可以访问上级作用域的数据,上级作用域无法访问下级作用域的数据)
- 优先级 (同 名情况下尽量避免),局部最优先,函数参数次之,全局最次
- 有效期 全局数据一直存在,块级内部在执行时创建,执行完后销毁
数据结构
对象object
在js中,所有数据在底层都是对象,object,英语中是物体的那种对象,一堆数据的集合,形式是
let ren={};
//在这个大括号里面,你可以加任何数据,和单独创建数据相比,不需要关键词
//let,也不需要等于号,而是冒号,这种形式叫键值对,key就是属性名,
//值value就是具体内容,比较方便的是,对象里可以嵌套对象,无限叠加下去
原始值
在mdn上,其实js的数据类型分为原始值和对象两个,原始值7个
- string文本 字符(需要包裹在引号里面)
- number 数字 int整数,float浮点数
- boolean 真假
- null 空值
- undefined 未定义
- bigint 在数字超过2的53次方时使用
- symbol符号类型 ,创建唯一且不可修改的值
null和undefined,如果一个a数据为空,那么它的值是null,而undefined则代表根本没有a数据被定义,undefined,处理不好容易报错
原始值是特殊的对象,自带很多函数和属性
函数
函数**也是对象,道理和原始值一样,
数组
数组,是一个特殊的对象,非常关键的数据类型,平级数据可以无限排列下去,它和对象一样,也可以包括所有的原始值和对象,
let yuandao=['一班','二班','三班'];
let arr=[1,true,null,{a:'a'}];//对象的无限嵌套,就是对象的另一种形
//式.
日期
正则
js标准内置对象数据
环境种类
编程语言本身只有计算的功能,就是一个有数据有函数的环境,它能实现的所有功能,都是由不同环境提供的,而不同环境又是由不同函数实现的,一层一层嵌套下去,最终反映在调用硬件的电流开关上,屏幕的led灯,内存的电门,硬盘的电位等等,
//假如人是js,那么你在房间运行的时候,你可以调用房间的数据和函数,比如查看房间面积,开灯之类的,当你在汽车中运行时,你可以调用汽车的数据和函数,看汽车时速,或者踩油门.房间和汽车都是环境,编程语言和环境的关系也是如此.
浏览器
当你的代码运行在浏览器时,就自带window对象,window对象里包含了所有的关于浏览器功能的数据和函数,你可以用window对象,来完成所有对网页的控制.
后端node.js/deno
除了浏览器,js也可以通过node.js等框架运行在服务器上,这些框架会提供给他几个对象,用来操作文件系统,网络通信,数据库函数等等,框架和库 包之类的名词差不多
所有组合的功能 ,提供了便利的函数,我们都可以叫框架和库
global对象
内置系统模块
小程序
微信内是wx对象,其他厂商有不同的名字,但本质一样
app
桌面端
硬件
其他
注释
代码的说明
数据命名规则
- 避免保留字和关键字
- 不能以数字开头
- 字母大小写严格区分
- 见名知义
- 驼峰命名法