# 1、变量
# 操作符
var
let
const
# 2、关键保留字
# 关键字
简单点讲:下面这些关键字不能用作变量名(标识符),一般用于控制语句的开始或结束, 或者用于执行特定的操作等用的。
| var | break | else | new |
|---|---|---|---|
| case | finally | return | void |
| catch | for | switch | while |
| continue | function | this | with |
| default | if | throw | |
| delete | in | try | |
| do | instanceof | typeof |
# 保留字
另外还有一组不能用作标识符的保留字,尽管保留字在 JS 中还没有特定的用途,但它们很有可能在将来被用作关键字。比如:const 、 let、class等等 这在以前是没有用的。
| let | const | abstract | enum | class |
|---|---|---|---|---|
| int | short | boolean | export | double |
| interface | static | byte | extends | import |
| long | super | char | final | public |
| native | synchronized | volatile | float | |
| package | throws | debugger | goto | |
| private | transient | implements | protected |
# 3、语法构成
# 标识符
就是指变量、函数、属性的名字,或者函数的参数。由下列格 式规则组合起来的一或多个字符:
1.不能把关键字、保留字、true、false 和 null 作为标识符
2.第一字符必须是一个字母、下划线(_)或一个美元符号($)
3.其他字符可以是字母、下划线、美元符号或数字
总之:写标识符的时候,编辑器出现错误,就不要用!!!
# 区分大小写
例如:text 和 Text 表示两种不同的变量
# 代码注释
包括单行注释和块级注释
// 单行注释
/*
* 这是一个多行
* 块级注释
*/
# 4、数据类型
# Undefined 类型
Undefined 类型只有一个值,即 undefined。我们声明变量,但没有对其初 始化时(没有给它赋值的时候),这个变量的值就是 undefined。 没有必要 let text = undefined;
我们用 typeof 操作符检查数据类型
let text;
alert(text);//返回值 undefined
alert(nickname);// 报错,提示:未定义
alert(typeof text); //返回 undefined
alert(typeof nickname); //返回 undefined
总结:没有定义内容(未赋值)和 不存在的变量,通过 typeof 都返回 undefined。导致我们不好判断类型,因此:我们 在声明变量后就必须要赋值(初始化),以避免我们不好判断出现问题。
# Null 类型
Null 类型是一个只有一个值的数据类型,即 null。typeof 操作符检测 null 会返回 object
let text = null;
alert(text);//返回值 null
alert(typeof text); //返回 object
作用
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null。
# Boolean 类型
注意
1.Boolean 类型有两个值(字面量):true 和 false
let text = true;
alert(text);//返回值 true
alert(typeof text); //返回 boolean
2.true 不一定等于 1,false 不一定等于 0
let text = true;
alert(text == 1); //返回true
alert(text == 0); //返回false
alert(text === 1); //返回false 恒等,数据类型也必须相同
3.js 是区分大小写的,True 和 False 或者其他都不是 Boolean 类型的值
let text = True; alert(typeof text); //报错,未定义
let text = 'True'; alert(typeof text); //返回string 字符串类型了
4.使用转型函数Boolean()可将其他值转成 true 或 false
作用:程序开发中,多用于判断
let text;alert(Boolean(text));//undefined返回false let text = null; alert(Boolean(text));//null返回false
5.条件语句括号里面必须是布尔值,true或者false
if(这里必须是true或者false){}else{} 括号里面的内容会进行隐式转换
# Number 类型
# Number类型即数值类型,包含两种数值:整型(整数)和浮点型(小数)。
有四种格式:十进制、二进制、八进制、十六进制。
let text = 31; alert(text);//返回值 31 alert(typeof text); //返回 number
浮点类型(小数),就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。
let text = 1.4/0.5; //返回值 1.4/0.5 let text = .5; //返回值 0.5, 有效,不推荐
小数点后面没有值或小数点后面是 0,自动转成为整型
let text = 6.; alert(text); //返回值6 let text = 24.0; alert(text); //返回值24
数值过大或过小,可以用e(科学计数法)表示
let text = 183000000; alert(text); //返回值183000000 let text = 1.83e8; alert(text); //返回值183000000
浮点数值的最高精度是 17 位小数,但算术运算中可能会不精确
let text = 0.7+0.8; alert(text);//返回值1.5 let text =0.1+0.2; alert(text);//返回值0.30000000000000004 //因此注意不要用浮点数做精确判断
浮点数值的范围在:Number.MIN_VALUE ~ Number.MAX_VALUE 之间(做了解即可)
alert(Number.MIN_VALUE); //最小值 alert(Number.MAX_VALUE); //最大值 //超过这个范围,出现正无穷大,或负无穷大 alert(100e1000); //超出范围,Infinity alert(-100e1000); //超出范围,-Infinity //判断是否超过了规定范围,可以使用 isFinite()函数,没有超过返回 true,超过了返回 false alert(isFinite(100e1000)); //超过了,返回 false
# NaN,即非数值(Not a Number)是一个特殊的值,比如,任何数值除以0是不对的,其他程序会终止,但js会返回出特殊的值NaN,不会影响程序执行。
alert(0 / 0); //NaN alert(10 / 0); //Infinity alert(10 / 0 * 0); //NaN //可以通过 Number.NaN 得到 NaN 值,任何与 NaN 进行运算的结果均为 NaN //NaN 与自身不相等(NaN 不与任何值相等) alert(Number.NaN); //NaN alert(NaN+10); //NaN alert(NaN == NaN) //false //判断这个值到底是不是 NaN,可以使用isNaN()函数,它会尝试将这个值转换为数值(用到它的时候再讲) //Number()、parseInt()和 parseFloat(),这3个函数可以把非数值转换为数值 //Number()函数是转型函数,可以用于任何数据类型 //parseInt()和 parseFloat()个则专门用于把字符串转成数值
# String 类型
String 类型就是我们常说的字符串类型,可以由双引号(")或单引号(')表示。
let text = '迪丽热巴'; alert(text);//返回值 '迪丽热巴' alert(typeof text); //返回类型字符串 string let text = "迪丽热巴"; alert(typeof text);//返回 string
String 类型包含了一些特殊的字符字面量,也叫转义序列。
| 字面量 | 代表的含义 |
|---|---|
| \n | 换行 |
| \t | 制表 |
| \b | 空格 |
| \r | 回车 |
| \f | 进纸 |
| \\ | 斜杠 |
| \' | 单引号 |
| \" | 双引号 |
alert('\'迪丽\n热巴');
toString()方法可以把值转换成字符串[比较常用]
let text = 31; alert(typeof text); //返回number alert(typeof text.toString()); //返回 string //text.toString()打印的是 '31' 或者 "31" let text = true; alert(typeof text); //返回boolean alert(typeof text.toString()); //返回 string //text.toString()打印的是 'true' 或者 "true" //undefined 和 null 无法转型 let nickname; alert(nickname.toString());//报错 let nickname=null; alert(nickname.toString());//报错 //可采用函数 String(),这个函数能够将任何类型的值转换为字符串 let nickname; alert(String(nickname));//返回 'undefined'或 "undefined" alert(typeof String(nickname));//返回string let nickname=null; alert(String(nickname));//返回 'null'或 "null" alert(typeof String(nickname));//返回string //总结:函数 String()比较智能,只有undefined 和 null 才会强制转换 //其他时候,用函数 String(),默认还是用的toString()方法
# Object 类型
Object 类型就是对象类型
创建对象1.对象字面量创建
let text = {}; alert(text);//返回值 [object Object] alert(typeof text); //返回类型字符串 object2.new 操作符创建
let text = new Object(); alert(text);//返回值 [object Object] alert(typeof text); //返回类型字符串 object既然可以使用 new Object()来表示一个对象,那么我们也可以使用这种 new 操作符来创 建其他类型的对象。
let text = new Number(31); alert(text); //返回 31,是一个数值对象 alert(typeof text);//返回 object let text = new String('迪丽热巴'); alert(text); //返回 '迪丽热巴',是一个字符串对象 alert(typeof text);//返回 object let text = new Boolean(true); alert(text); //返回 true,是一个布尔对象 alert(typeof text);//返回 object要理解空的对象和空对象
空的对象,表示这个对象创建了,里面没有东西,比如: let text = {};
空对象,表示没有创建,就是一个null, 如 let text = null;let text = null; text是Null类型,打印 alert(text) 得到的值是 null, 类型返回的字符串是object, 即null属于对象的一种,但是它属于 Null类型。
# 总结 typeof操作符及初始化变量声明
typeof 操作符是用来检测变量的数据类型。
| 数据类型 | 数据类型通过typeof返回的字符串 | 描述 |
|---|---|---|
| Undefined | undefined | 未定义 |
| Boolean | boolean | 布尔值 |
| Number | number | 数值 |
| String | string | 字符串 |
| Object | object | 对象或null |
| function | 函数 |
提示:函数在 js 中是对象,不是一种数据类型。所以,使用 typeof 来区分 function 和 object 是非常有必要的。
初始化变量声明
一般初始化变量声明采用下面方式
//扩展一下,声明对象 let text = null; //扩展一下,声明字符串 let text = ''; //扩展一下,声明数值 let text = 0; //扩展一下,声明布尔值 let text = true/false;
# 总结 Boolean 类型转换
1.转型函数Boolean()强制性转换
String字符串强制转换
let text = '迪丽热巴'; alert(Boolean(text)); //返回 true 真 let text = ''; alert(Boolean(text)); //返回 false 假总结:空字符串即 '' 或者 "" 为假,里面有内容就是真
Number数值强制转换
let text = 0/NaN; alert(Boolean(text)); //返回 false 假 let text = Infinity/任何数值; alert(Boolean(text)); //返回 true 真总结: 0/NaN 为假,任何非零数字值(包括无穷大)是真
Object对象强制转换
let text = null; alert(Boolean(text)); //返回 false 假总结: null 为假,其他任何对象为真
Undefined数据类型强制转换
let text; alert(Boolean(text)); //返回 false 假总结: 就一个值 undefined,为假
Boolean数据类型强制转换
let text = true; alert(Boolean(text)); //返回 true 真 let text = false; alert(Boolean(text)); //返回 false 假总结: true 为真,false为假
2.隐式转换
如,在if 条件语句里面的条件判断,就存在隐式转换
if(括号里面的条件,隐式转换成真或假){ //真的操作 }else{ //假的操作 } //我们讲流程控制语句的时候再讲
# Number()函数
有 3 个函数可以把非数值转换为数值:Number()、parseInt()和 parseFloat()。 Number()函数是转型函数,可以用于任何数据类型。
alert(Number(true)); //1,Boolean 类型的 true 和 false 分别转换成 1 和 0 alert(Number(31)); //31,数值型直接返回 alert(Number(null)); //0,空对象返回 0 alert(Number(undefined)); //NaN,undefined 返回 NaN字符串规则
1.只包含数值的字符串,会直接转成十进制数值,如果包含前导 0,即自动去掉
alert(Number('310')); //返回310 alert(Number('031')); //返回312.只包含浮点数值的字符串,会直接转成浮点数值,如果包含前导和后导 0,即自动去掉
alert(Number('01.30')); //返回1.33.如果字符串是空,那么直接转成 0
alert(Number('')); //返回04.如果不是以上三种字符串类型,则返回 NaN
alert(Number('迪丽热巴31')); //返回NaN如果是对象,对象章节再讲
# parseInt()函数、parseFloat()函数
处理整数的时候更常用的是 parseInt()函数,规则如下:
1.空字符串返回NaN
alert(parseInt('')); //返回NaN2.如果第一个不是数值,就返回 NaN
alert(parseInt('Di31Reba')); //返回NaN3.从第一数值开始取,到最后一个连续数值结束
alert(parseInt('520Di31Reba')); //返回5204.返回整数部分
alert(parseInt('520Di')); //返回5205.小数点不是数值,会被去掉
alert(parseInt('31.24')); //返回31
处理浮点数值(小数)转换的时候更常用的是 parseFloat()函数,规则如下:
1.只认一个小数点
alert(parseFloat('520.13.14')); //返回520.132.去掉前后的0
alert(parseFloat('0520.1300')); //返回520.133.把科学计数法转成普通数值
alert(parseFloat('5.2e9')); //返回5200000000
# 课程其它章节
# 章节1.课程介绍
# 章节2.javascript基础
# 1、变量
# 2、关键保留字
# 3、语法构成
# 4、数据类型
# 章节3.javascript运算符
# 1、一元运算符
# 2、算术运算符
# 3、赋值运算符
# 4、关系运算符
# 5、逻辑运算符
# 6、字符串、逗号、三元条件运算符
# 7、运算符优先级
# 章节4.流程控制语句
# 1、if语句
# 2、switch 语句
# 3、循环语句
# 4、for...in 语句 枚举对象的属性
# 5、break 和 continue 语句 退出循环语句
# 6、with语句
# 章节5.javascript函数
# 1、函数声明
# 2、函数 return 返回值
# 3、函数的arguments 对象
# 章节6.javascript对象
# 1、创建对象
# 2、对象属性输出、方法(函数)调用
# 3、对象中的方法及应用
# 章节7.javascript数组
# 1、创建及读取数组
# 2、数组中的属性和内置方法:toLocaleString()、valueOf()和 toString()
# 3、数组中的方法:join()、push()、pop()、shift()、unshift()、reverse()、sort()、concat()、slice()、splice()方法
# 4、数组更多操作方法
# 章节8.Date类型:时间和日期
# 1、Date 类型
# 2、格式化日期和时间
# 章节9.Function类型:函数进阶
# 1、函数的声明
# 2、作为值的函数
# 3、函数内部属性
# 4、函数的属性和方法
# 章节10.内置对象:Global、Math对象,变量、作用域和内存问题
# 1、内置对象: Global对象
# 2、内置对象: Math 对象
# 3、变量
# 4、作用域(执行环境)
# 5、 内存问题
# 章节11.匿名函数和闭包
# 1、匿名函数如何自动执行-()()方式
# 2、通过闭包实现局部变量的累加
# 3、循环里的匿名函数取值问题:任何变量都是最后一个值
# 4、闭包中的this对象问题
# 5、 匿名函数私有化:匿名函数自我执行模仿块级作用域,将变量私有化保护数据
# 章节12.javascript基本包装类型
# 1、Number 类型
# ① Number类型静态属性:MAX_VALUE、MIN_VALUE、NaN、NEGATIVE_INFINITY、POSITIVE_INFINITY、prototype
# ② Number类型方法:toString()、toLocaleString()、toFixed()、toExponential()、toPrecision()
# 2、String类型
# ① String类型属性:length、constructor、prototype
# ② String类型通用方法:valueOf()、toLocaleString()和 toString()方法
# ③ String类型方法:charAt(n)、charCodeAt(n)、数组方式截取字符串、concat(str1...str2)、slice(n,m)、substring、substr、indexOf、lastIndexOf、toLowerCase、toUpperCase、toLocaleLowerCase、toLocaleUpperCase、match、search、replace、replaceAll、split、fromCharCode、localeCompare、startsWith、endsWith、includes、trimStart、trimEnd、trim、repeat、魔法字符串
# 3、Array数组的常用方法
# ① 数组中的属性length,数组内置方法toLocaleString()、valueOf()和 toString()
# ② join、push、pop、shift、unshift、reverse、sort、concat、slice、splice
# ③ includes、reduce、find、findIndex、filter、map、forEach
# ④ indexOf、lastIndexOf、at、fill、copyWithin、isArray、es6的扩展运算符、every、some、for...of遍历、keys()、values()、entries()、reduceRight、flat、flatMap、from、of
# ⑤ 集合类型Set()属性方法:size属性、add、has、delete、clear方法,迭代遍历数据:keys()、values()、entries()、for...of遍历,forEach遍历
# ⑥ 小结拓展:获取两个数组交集、并集、差集,获取数组随机元素(验证码)
# 章节13.函数对象数组小结
# ① 对象的方法:for...in(遍历对象)、Object.assign()、Object.create()、Object.freeze()、Object.keys()、Object.values()、Object.entries()
# ② 数组解构:基础用法、省略元素、设置数组元素默认值、嵌套数组(多维数组)的结构赋值、不定元素的解构赋值
# ③ 对象解构:基础用法、重命名解构变量、对象解构时的默认值
# ④ var和let、const的区别
# ⑤ 函数参数默认值:对arguments的影响、对函数length的影响、函数默认表达式、参数默认值的暂时性死区
# ⑥ 函数剩余参数:剩余参数只能出现一个、剩余参数只能放在最后
# ⑦ 展开运算符:针对可迭代对象展开、字面量形式的对象做对象克隆和对象合并
# 章节14.浏览器对象模型BOM及浏览器检测
# ① window 对象:属性和方法、系统对话框、调出打印机print()、网页新建窗口open()、窗口页面的位置:screenX(screenLeft)和 screenY(screenTop)、窗口页面的大小:innerWidth和 innerHeight,outerWidth 和 outerHeight,document.documentElement.clientWidth和document.documentElement.clientHeight
# ② window对象:超时调用:setTimeout()方法、取消超时调用:clearTimeout()方法、间歇调用:setInterval()方法、取消间歇调用:clearInterval()方法、模拟定时器功能,超时调用模拟间歇
# ③ location 对象:获取网址相关信息、assign()方法跳转到指定页面、reload()方法、repalce()方法、获取网址url参数中的键值对、history 对象 : 属性:length,方法:back()、forward()、go(num)
# ④ 获取浏览器相关信息、浏览器插件检测、MIME 类型检测、判断设备是安卓、苹果、是否在微信上面浏览网页、用户查看网页的设备是电脑设备,还是手机设备
# 章节15.网页文档对象模型DOM
# 1、理解DOM
# ① DOM节点树,节点种类:元素节点、文本节点、属性节点
# 2、查找节点信息方法
# ① getElement系列: getElementById()方法,getElementById()方法获取的元素节点属性:tagName、innerHTML等, 获取及设置元素html属性:id,title,style,className等,getElementsByTagName()方法,getElementsByName()方法,getElementsByClassName()方法
# ② querySelector系列: querySelector()方法,querySelectorAll()方法
# ③ 属性操作系列: getAttribute()方法,setAttribute()方法,removeAttribute()方法
# ④ node节点属性: nodeName、nodeType、nodeValue
# ⑤ 层次节点属性: childNodes属性,firstChild 和 lastChild 属性,ownerDocument 属性,parentNode 属性,previousSibling 属性,nextSibling 属性,忽略空白文本节点,attributes 属性
# 3、操作节点
# ① document.write()方法,createElement()方法,appendChild()方法,createTextNode()方法, insertBefore()方法,模拟在指定节点的后面添加一个节点,repalceChild()方法,cloneNode()方法,removeChild()方法
# 4、DOM 类型、扩展、操作内容
# ① DOM 类型: Document类型补充(获取html节点对象,获取body节点对象,获取文档声明:DOCTYPE对象,document.title,document.images,document.links等),Text类型补充(normalize()方法,splitText(num)方法,deleteData删除字符,insertData插入字符,replaceData替换字符,substringData获取字符)
# ② DOM 扩展: scrollIntoView(), children 属性,contains()方法
# ③ DOM操作网页内容:innerText、innerHTML、outerText、outerHTML
# 5、DOM实战:操作表格
# ① DOM创建表格
# ② HTML DOM 来操作表格: 获取表格元素对象, 获取表格的标题对象<caption>,获取表头表尾<thead>、<tfoot>、<tbody>,获取表格的行数,获取表格主体里的行数,获取表格主体内第一行的单元格数量(tr),获取表格主体内第一行第一个单元格的内容(td),删除标题、表头、表尾、行、单元格,HTML DOM 创建一个表格
# 6、操作CSS样式
# ① 行内样式style的获取、赋值、移除属性removeProperty,计算后的样式获取(行内、内联、外联样式):window 对象下getComputedStyle()方法
# 7、操作页面样式
# ① className关键字设置样式,创建函数:hasClass() 判断是否存在某个类名,addClass() 如果不存在的这个类名,添加这个类名,removeClass() 如果存在的这个类名,删除这个类名
# 8、操作CSS外联样式表.css文件
# ① 获取CSSStyleSheet,外联的css样式表对象
# 9、DOM元素尺寸(元素大小)和位置(元素位置)
# ① 获取元素 CSS 大小回顾:通过 style 内联获取元素大小,通过计算getComputedStyle()方法获取元素大小,通过 CSSStyleSheet 对象中的 cssRules属性获取元素大小(需将网页放到服务器上查看)
# ② 获取元素实际大小:clientWidth 和 clientHeight:获取可视区的元素大小,可以得到元素内容及内边距所占据的空间大小,scrollWidth 和 scrollHeight:获取滚动内容的元素大小,offsetWidth 和 offsetHeight:获取元素大小,包含边框、内边距和滚动条
# ③ 获取元素周边大小位置:clientLeft 和 clientTop:获取元素设置了左边框和上边框的大小;offsetLeft 和 offsetTop:获取当前元素相对于父元素的位置;scrollTop 和 scrollLeft:这组属性可以获取滚动条被隐藏的区域大小(滚动条滚动高度宽度),也可设置定位到该区域(定位滚动条); getBoundingClientRect()方法:返回一个矩形对象,包含四个属性:left、top、right和 bottom,分别表示元素各边与页面上边和左边的距离
# 10、动态加载脚本
# ① 动态加载js文件,动态加载样式表
# 章节16.事件
# 1、事件基础知识
# ① 事件处理函数列表
# ② 内联模型
# ③ 脚本模型
# 2、事件处理函数分类
# ① 鼠标事件:click,dblclick,mousedown,mouseup,mouseover,mouseout,mousemove
# ② 键盘事件:keydown,keypress,keyup
# ③ HTML事件(包括表单事件):load,unload,resize,scroll,select,change,input,submit,reset,focus,blur
# 3、事件对象
# ① this 关键字和上下文
# ② 获取事件对象
# ③ 获取鼠标按钮(左键、右键、中间滚轮)
# ④ 可视区及屏幕坐标:clientX,clientY,screenX,screenY,鼠标点击位置距离页面顶部距离(带滚动条)
# ⑤ 修改键:shiftKey对应Shfit 键,ctrlKey对应 Ctrl 键,altKey 对应 Alt 键,metaKey 对应 windows 键,判断是否按下了它们
# ⑥ 键盘事件:键码(键盘上的任意键)keyCode,字符编码(键盘上可以输出字符的键)charCode
# ⑦ 事件对象的常用属性和方法:target,事件冒泡,取消:e.stopPropagation()
# ⑧ 事件对象其他属性方法:relatedTarget(在 mouseover 和 mouseout 事件中获取),e.preventDefault(),contextmenu取消鼠标右击弹出的菜单,鼠标滚轮:mousewheel
# 4、事件绑定
# ① 剖析传统事件绑定问题:同名事件后者覆盖前者,this 传递问题
# ② 现代事件绑定处理函数:添加事件addEventListener(),删除事件removeEventListener(),设置冒泡和捕获
# 章节17.表单处理及错误处理与调试
# 1、表单基础知识
# ① 获取form对象的方法
# ② 提交表单:默认提交form表单按钮type="submit",js中表单提交及阻止提交,让没有提交功能的按钮(其它元素)完成表单提交使用的是form.submit()方法,实现使用键盘 CTRL + enter(回车键)提交数据
# ③ 预防表单数据重复提交,表单重置:按钮重置type="reset",js重置 form.reset()方法
# 2、使用HTML DOM获取表单控件元素
# ① elements属性获取表单控件元素集合
# ② 多个表单字段都使用同一个 name,如单选框多选框,常用属性
# ③ 表单共有字段方法:foucs(),blur(),表单共有的字段事件:blur,change,input,focus
# 3、表单中的文本框
# ① input.value 和 textarea.value 获取输入的内容,defaultValue获取默认设置的value值
# ② 选择文本:使用 select()方法,可以将文本框里的文本选中,并且将焦点设置到文本框中
# ③ 选择部分文本:setSelectionRange()方法,这个方法接受两个参数:索引和长度
# ④ select 事件,选中文本框文本后触发
# ⑤ 获取选择的文本,两个属性:selectionStart 和 selectionEnd
# ⑥ 文本过滤输入(表单验证,文本验证,输入框验证)
# ⑦ 剪切事件:cut,复制事件:copy,粘贴事件:paste,禁用输入法
# ⑧ 利用正则表达式将用户输入的非数字字符替换成空,只留下数字
# ⑨ 输入框自动切换焦点到下一个输入框(类似Tab键),maxlength属性可输入的最大字符长度
# 4、表单中的下拉列表(选择框)
# ① 获取下拉列表对象
# ② 下拉列表多选属性 multiple="multiple"(按住键盘CTRL键进行多选),size显示的行数
# ③ 属性 options(下拉选项的集合)
# ④ 选择选项:选择一项的使用selectedIndex属性,监听的是下拉列表的change事件
# ⑤ 下拉列表动态添加选择项: 使用Option 构造函数,add方法添加选项
# ⑥ 下拉列表动态移除选择项:三种方式(removeChild移除、remove()方法移除和 null 移除)
# ⑦ 下拉列表动态移动选择项(两个下拉列表选项移动)
# ⑧ 下拉列表动态排序选择项(选项排序):属性index
# ⑨ 获取单选框或者多选框选择的值: 判断checked属性是否为真判断选中的项,defaultChecked判断项目原本设置的默认值
# 5、错误与调试
# ① 浏览器错误报告,错误处理:try-catch 语句,finally 子句,错误类型
# ② try-catch使用场景,抛出错误,错误事件error:处理DOM对象产生错误时候使用,比如加载图片失败,错误处理策略,调试技术和调试工具
# 章节18.数据Cookie、XML、JSON
# 1、Cookie、sessionStorage、localStorage
# ① cookie 的组成,编码和解码,失效时间,手动清理cookie,cookie路径访问,cookie限制域名访问,指定访问协议 http https
# ② 封装cookie(创建,获取,删除)
# ③ sessionStorage、localStorage
# ④ cookie 和 localStorage的对比
# 2、XML
# ① 创建 XMLDOM 对象(document.implementaion,DOMParser类型创建XMLSerializer类型进行序列化成字符串),解析错误
# ② 加载读取外部xml文件
# ③ XPath操作XML
# ④ 封装XPath操作xml文件
# 3、JSON
# ①JSON 语法,可以表示三种类型的值
# ② 获取外部json文件
# ③ 解析json字符串(将json字符串转成数组对象——json结构数据):JSON.parse()方法
# ④ js原生值数组、对象转成json字符串--JSON.stringify()
# ⑤ toJSON
# 其它学期课程
# 第一学期(学习顺序:01)
第一学期课程专为零基础的学员定制录制的,纯html+css做企业网站的网页,主讲html和css的相关基础知识,flex布局相关知识,封装css基础样式库,引入字体图标及网页开发基础布局思维,完成企业网站网页的开发过程。
[第一学期学习视频]
# 第二学期【第1季】(学习顺序:02)
# 第二学期【第2季】(学习顺序:03)
JavaScript中的面向对象,类,ajax,封装js库过渡到jQuery, vue.js基础配置网站页面,建议所有学员观看。
[第2季学习文档] [第2季学习视频]
# 第二学期【第3季】(学习顺序:04)
egg.js基础,响应式网页布局,Bootstrap框架,响应式后台系统管理,完整企业网站前后台开发,建议所有学员观看。
[第3季学习文档] [第3季学习视频]
# 第二学期【第4季】(学习顺序:05)
主要对第三季,同学们开发的企业网站,进行一个完整的上线运维流程的一个讲解,同学们将网站开发完成之后,如何进行上线运维,将项目交付给客户。
[第4季学习文档] [第4季学习视频]