资源介绍
JavaScript:定义行为和动作
(基于对象和事件驱动的客户端脚本语言;也是一种广泛应用于客户端Web开发的脚本语言)
基于对象:网页中的一切元素都是假象!不需要new,即可直接使用
事件驱动:JavaScript的执行都是由事件引发
解释执行:先读到的先执行,后读到的会替代先读的
可以使用任何文本编辑工具编写 JavaScript 代码,然后由浏览器解释执行。
JavaScript常用于实现如下功能:
|--控制文档的外观和内容;
|--对浏览器的控制;
|--与 HTML 表单的交互;
|--与用户的交互;
|--执行计算等。
1.单击事件:定义在按钮的开始标签中
语法:onclick="js语句"
弹出警告:alert(‘字符串’)
强调:1.js区分大小写
2.字符串单双引号不区分
[removed]标签:页面中专门集中编写JavaScript的区域
js的方法定义:function方法名([参数列表]){
方法体
[return 返回值]
}
注意:js中的方法可以直接写在代码中,不需要“类”包裹
使用方法:方法名()-->方法调用-->立即执行
2.js文件:网页外专门保存js脚本的文件--推荐
强调:HTML、CSS、JS都要使用UTF-8编码保存(window系统)
使用js文件引入网页:[removed][removed]
强调:一旦定义src属性则其中的代码失效
解释执行:语句也可以直接写在js文件中,边解释边执行
3.***调试***
|--①.只有在执行时,才会报错
|--②.错误信息,浏览器页面看不到--没效果
| 解决:控制台--(工具-->JavaScript控制台或F12)
| 包含错误信息;指向错误位置的超链接
|--③.打桩:在指定变量位置输出变量或对象的内容
console.log(内容);-->出现在控制台-->日志
4.变量:js中的变量不需要提前指定类型,由赋值时动态决定
所有的变量都用var声明
5.数据类型:
|--String(字符串类型)
|--Number(数字类型)
|--Boolean(布尔类型)0、-0、null、""、false/undefined或NaN,则该对象设置为false。其余都可以当true
6.数据类型的隐式转换:
|--数字 + 字符串:数字转换为字符串
|--数字 + 布尔值:true转换为1,false转换为0
|--字符串 + 布尔值:布尔值转换为字符串true或false
|--布尔值 + 布尔值:布尔值转换为数值1或0
7.数据类型转换函数 :(方法前不需要对象调用的:全局函数)
|--toString():转换成字符串。所有数据类型均可转换为 string 类型;
|--parseInt():强制转换成整数。如果不能转换,则返回 NaN(not a number);
|--parseFloat():强制转换成浮点数。如果不能转换,则返回 NaN(Not a Number)
|--typeof():查询数值当前类型。
|--isNaN():判断是否为数字。返回 true:不是数字/false:是数字
| |--isNan(""):对空字符串不验证,直接返回false
| |--如果输入的是字符串类型的数字,返回false--不能判断数据类型,只判断内容
| |--如果输入的是boolean,返回false。因为boolean可以和number类型直接做计算
| |--和任何数字计算都得NaN;和任何数字作比较都得false
|--注:[removed]();节点输出,即在当前位置输出括号里的内容
*凡是从页面上进入js的都是字符串类型
8.查找元素:抓住根节点,就等于抓住整棵树
网页的根节点:document对象
要找元素,必须利用document对象(当前网页文件)
精确查找某个ID的元素:document.getElementById(id名);
9.null和undefined:
|--null:一个特殊的值,表示“无值”--空对象。数据类型为Object
|--undefined:表示声明了变量但从未赋值或者对象属性不存在
10.双等号(==)和全等号(===):
|--“==”为确定两个运算数是否相等,“==”运算符会进行类型转换。转换后运算数相等就返回true,否则返回false
|--“===”不执行类型转换,即,只有在无需类型转换运算数就相等的情况下,才返回true,否则返回false
|--附:if(null)、if(defined)、if(NaN)都相当于if(false)
-----猜数字游戏-----
失去焦点时,判断猜对猜错
获得焦点:onfocus 失去焦点:onblur
当事件就发生在获得内容的当前元素上:
this直接获得当前内容对象。可以代替当前对象完成一切操作,拥有当前对象的所有属性
前端优化:js中最好用三目运算代替if else
11.String:
|--查找:x.indexOf(‘关键字’[,开始位置下标])
| 每次只查找第一次出现的位置
|--替换:x.replace(‘关键字’[,‘替换内容’])--不会修改原x字符串
| 每次只替换第一次找到的
|--查找和替换所有:while循环
|
|--String 对象的常用方法有:
|--x.toLowerCase()、x.toUpperCase():大小写转换方法;
|--x.charAt(index):返回指定位置的字符;
|--x.charCodeAt(index):返回指定位置字符的Unicode编码;
|--x.indexOf(findstr,index)、x.lastIndexOf(findstr,index): 获取指定字符;
|--x.substring(start, end): 获取子字符串;
|--x.replace(findstr,tostr):替换子字符串;
|--x.split(bystr): 拆分子字符串。
|--String与正则表达式
|--str.match(regExp);--查找str中匹配正则表达式的关键字
| 返回:如果没找到,返回null。若找到,返回1个数组,数组的每个元素是每个找到的匹配关键 | |--str.replace(regExp,"替换值")--替换str中所有匹配的关键字
| 强调:replace方法不改变元字符串,只能返回新字符串。必须用变量接收新字符串
|
|--js中正则表达式语法:/正则表达式/[属性后缀]--其中属性后缀,g:全局匹配 i:忽略大小写(仅英文有效)
如果不适用模式匹配方式,将执行原文匹配
结果:如果正则表达式写错,也将执行原文匹配
12.Array笔试题:js中数组声明方式:
A new Array(7)
B new Array(7,‘a’,true)
C [7,'a',true]--js中所有[]都表示数组
D []--实例化一个空数组对象 实例化空数组:var arr=[];
特点:元素个数不限定,元素类型不限制
13.Array 对象的常用方法:
|--1.join()方法--用于把数组中的所有元素放入一个字符串
| eparato表示要使用的分隔符。如果省略该参数,则使用逗号作为分隔符
|--2.toString()方法--可把数组转换为字符串,并返回结果
|--3.concat()方法--用于连接两个或多个数组,该方法不会改变现有的数组
|--4.slice()方法--截取元素。根据给定的范围可从已有的数组中返回选定的元素
14.Function:js中一切都是对象,连方法都是1个对象!!
笔试题:js中方法定义集中方式:
A:function compare(a,b){return a-b;}---*可以任意地方声明方法*
B:var compare=function(a,b){return a-b;} ---|
--其实方法名也是方法对象的变量名;等号右边其实就是1个匿名方法对象 |--*必须在传递之前声明方法对象*
C:var compare=new Function('a','b','return a-b') ---|
--其实js底层就是new Function;构造函数中的参数都是字符串
结论:所有的方法都是function类型的。
15.JavaScript中的所有事物都是对象,分为三类:
|--简单对象:String、Number、Boolean
|--组合对象:Array、Math、Date
|--复杂对象:Function、Regex、Object等
16.Array排序:
|--升序:function compare(a,b){return a-b;}
|--降序:function compare(a,b){return b-a;}
比较器用法:arr.sort(比较器方法名);
遍历:for(var i=0;i
DOM树:当前节点向上:txtObj[removed]()
向下:txtObj.getElementByTagName()
26.表单中查找控件对象:document.getElementsByName('name属性')
DOM增加新节点:两种方法
创建新节点:document.creatElement('标签名')
--此时新元素对象仅在内存中游离,页面看不见!
添加新节点:找到父元素!
|--appendChild() 方法只能将新节点作为某节点的最后一个子节点
| --此时新元素追加到了父元素的末尾
|--parentNode.insertBefore()(新元素对象,A)--其中A为新元素要插入位置的后一位元素
DOM删除元素:node.removeChild(childNode)--node为父节点,childNode为要删除的节点
27.HTML DOM
Select和Option对象:
select对象:代表HTML表单中的一个下拉列表,每个