JavaScript的内容要写在script标签中,script标签可以写在文档中的任意位置,执行顺序与html加载顺序同步
引入JS的方式
1.内嵌式
<script>
document.write("绿肥红瘦")
</script>
2.外联式:当一个script标签引入js文件后,内部Js代码不再执行
<script src="js/myJs.js">
</script>
js的输出方式:
1.向页面输出
2.消息框
3.向控制台输出
<script>
document.write("海蒂和爷爷")
alert("铁甲依然在")
console.log("一个叫欧维的男人");
</script>
变量和常量
1. 定义变量:let 变量名 = 值;(H5之前使用var来定义变量)
2. 定义常量:const 常量名 = 值;
JS是弱类型语言,没有过分强调变量的数据类型
<script>
let name = "杰洛特";
const name = "叶奈法";
</script>
数据类型
1. string 字符串
2. number 数字
3. boolean 布尔类型
4. object 对象类型 空对象使用 null表示
5. null 声明null值的特殊关键字,这是JS的BUG,本应是null类型,实际打印是Object类型
6. undefined 变量未赋值
运算符
除法,js中就是像数学计算一样,直接给与相对准确的值,即带小数点的值
0可以作为除数,但是会出现Infinity(无穷)与NaN(Not a Number 不是一个数)
字符串类型的数字和数字类型的数字相加,进行的是字符串拼接操作
== 比较数值;===比较数值和类型
循环
普通循环
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
增强循环 for-in,此时遍历的是数组的索引
for (let arrKey in arr) {
console.log(arr[arrKey])
}
在JS中,当一个变量作为if条件时,可以给任意类型的数值。
但是,诸如:0,null,undefined,""这样的数据会被视作 false
所以,我们经常会将被判断的变量,直接放到if后,作为条件,直接做到滤空和错误数据过滤
数组
1.常见的定义方式:
let arr=[1,2,3,4,5];
let brr = new Array(1,2,3,4,5);
2.数组的特点
在JS中同一个数组可以放不同类型的数据
在JS中数组长度可随意变化,但是没有赋值的元素访问时返回undefined
数组的长度按最后一个赋值元素的索引+1计算
访问不存在值得索引元素不会改变数组长度,只会返回undefined
在JS中访问数组名,不会返回地址,而是返回内容!
在JS中,非数字也可以做索引,此时可以表现出map的映射关系,即键值对关系!
函数
1.定义声明式函数
function theWitcher() {
console.log("他从北方来,一骑白马,满面风霜");
}
2.定义匿名式函数,调用函数必须在定义后,Js中方法也可以给变量赋值
let yong_liu = function () {
console.log("酒力渐浓春思荡,鸳鸯秀被翻红浪");
}
3.js参数不需要指定类型;
js方法定义多个参数,可以不全传,不传的参数会被赋值成undefined.
事件
事件(event):JS可以监听用户的行为,并调用函数来完成用户交互功能.网页中一切可以被检测到的行为都是事件
事件对象,每个方法都可以传入一个事件对象参数。在该参数中保存了该事件的所有相关内容
事件方法参数有返回值时,调用方法一定要在方法前加上return
常见事件:
事件名 | 说明 |
---|
onclick | 鼠标点击某个元素 | onblur | 元素失去焦点 | onfocus | 元素获得焦点 | onkeydown | 某个键盘按键被按下 | onload | 一张界面被加载完成 | onsubmit | 提交按钮被点击 | onmouseover | 鼠标移到某个元素上 |
正则表达式
正则表达式.test(字符串)
// 以邮箱举例 gyy0803@163.com gyy0803@163.cn gyy0803@163.com.cn
let emailReg = /^\w+@\w+(.[a-zA-Z]{2,3}){1,2}$/;
let myEmail = "lb_nst@126.com.bbc.cnn.s.b";
console.log(emailReg.test(myEmail));
// 以手机号举例
let phoneReg = /^1[34578]\d{9}$/;
let phoneNumber = '15777777777';
console.log(phoneReg.test(phoneNumber));
windows中的api
window是bom对象---document是dom对象----document是window的属性
直接写方法名调用的方法(alert),或者直接使用的属性(document),都是window的属性。
所有window的属性,均可以省略window直接使用
弹出框:
alert( ) 显示带有一个提示信息和一个确定按钮的警示框 警告框
confirm( ) 显示一个带有提示信息、确定和取消按钮的对话框 确认框
prompt( ) 显示可提示用户输入的对话框 输入框
定时器:
setInterval(“方法”,毫秒值) 按照指定的周期(以毫秒计)来调用函数或计算表达式
setTimeout(“方法”,毫秒值) 在指定的毫秒数后调用函数或计算表达式。
clearInterval() 取消由 setInterval() 设置的 timeout。
clearTimeout() 取消由 setTimeout() 方法设置的 timeout。
|