💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ## 对js认识 ### 宿主对象:浏览器 ### 特点 * 解释型的脚本语言,java以及c都是编译后执行,而js是程序运行中编译执行。如果中间报错,其他的语句就不会执行,通过try catch处理异常 * 与java一样,是基于对象的脚本语言。相关的研发工作也是这个思想为核心。 * 弱类型的语言,设计紧凑简单。 * 动态性,可以为网页增加动态性,属于事件驱动型,当触发相关事件时不需要经过浏览器单独处理。 * 跨平台型,不依赖于任何的操作系统,只需要一个浏览器作为载体处理。 ## 语法组成部分 核心 (ECMAScript),包括了基本语法以及核心内置对象 文档对象模型(dom),包括了获取节点以及对文档样式,节点属性,绑定事件的相关操作 浏览器对象模型(bom),包括了浏览器的基本属性,以及对浏览器的相关操作。 ### 核心语法 #### 词法结构 * js程序是用unicode字符集编写的 * js区分大小写,而html不区分大小写,所以注意 * 注释格式 : ~~~ 单行注释:// 多行注释:/* */ 段落注释: /* * 这里是一段注释 * 这里的注释可以连写多行 */ ~~~ * 直接量 :程序中可以直接使用的值,例如字符串,数字,符号等 * 标识符:用于表明函数或者变量名称的,也可以用作某些语句的标记。js的标识符必须以字母、下划线、或者美元符号开始,而后续的字符可以为字母、数字、下划线、美元符号 * 保留字:js把一些标识符自己用,这些保留字不能当做标识符,下面是枚举的一些保留字。 > break,delete.function,return,typeof,case,do,if,switch,var,catch,else,in,this,void,continue,false,instanceof,throw,while,debugger,finally,new,true,with,default,for,null,try,class,const,enum,extends,import,super以及很多其他全局变量和函数(如Number ,String,RegExp,Array,Boolean,Error 等) * 分号:js的语句结束标记为分号,较好的书写方式是语句所有的语句结束时都添加分号。需要注意的是,js并不是所有的换行都添加分号,而是在不添加就执行失败的情况下添加分号,所以有时候系统自动添加的效果不是我们需要的效果。为了避免意外,建议所有需要语句结束的位置,手动都加上分号。 * js 的数据类型:原始类型,对象类型。 > 原始类型:数字,字符串,布尔值,null,undefined. > 对象类型:js中几乎所有的事物都是对象,与事物相关的值称为属性,能够在对象上执行的操作称为方法。常见的对象有String,Number,Boolean,数组,日期,函数,正则,math等等。 * 读取器 默认所有的属性都是可读可写的 (不详细讲解) 如果需要设置读写,那么通过getter 以及setter 方法单独设置 。 * 字符集,注释,直接量,标识符和保留字,可选的分号 * 类型(数字,文本,布尔值,null以及undefined,对象,类型转换),值(值引用),变量(变量声明以及作用域) * 表达式和运算符(原始表达式,对象、数组、函数、属性访问的表达式,运算表达式,逻辑运算,数学运算,关系表达式,赋值表达式,算数符概述、其他运算符等) * 语句(表达式语句,复合语句,声明语句,条件,分支,循环,跳转,其他语句) * 对象(创建,属性使用与查询,序列化,对象方法,属性的设置,特殊属性) * 数组,函数,类和模块,正则表达式,子集以及拓展 ### 文档对象模型 * dom概述 * 选取元素 * 文档结构和遍历 * 属性 * 元素内容 * 节点相关操作 * 文档的几何形状和滚动 * html表单 * 其他特性 ### bom * 计时器,属于window对象的方法,全局函数,但对窗口没有什么操作。提醒的是,可以针对性的停止或者开启某个定时器;定义的相关语法是函数块或者字符串的函数名称(如果不加引号,是立刻执行的);匿名函数不用加引号。 * 浏览器的定位和导航,location 是window 的属性,也是一个对象 * window对象的history属性也是一个对象,可以记录浏览器的页面历史,并且进行相关的操作。history.api 的h5拓展。 * navigator ,包括浏览器的相关信息,包括浏览器全称,版本号,操作系统,用户代理(ua)。 * screen对象,窗口的相关属性,通常用到的有大小,比如媒体查询里所用的就是screen 的宽度。 * 对话框(dialog):alert(),confirm(),prompt(),比较复杂模拟对话框showModalDialog().备注:这些弹出框进行时,代码会堵塞。 * onerror,多窗体,窗口的打开关闭等,iframe等