Javascript基础(二)
- 事件:
- 条件语句
- 类型转换
- 正则表达式regexp
- 错误抛出
- void
事件:
是发生在HTML元素上的行为,可以是浏览器行为,可以是用户行为
a) html 元素添加事件属性:
<p οnclick= 'alert('hello')'>点击提示</p>
<button οnclick= 'Date()'>点击查看现在时间</button>
<a onclick="handleEvent()">点我</a>
b) 常用的HTML事件:
onclick
: 用户点击html元素
onchange
: html元素改变
onmouseover
: 用户鼠标在html元素上移动
onmouseout
: 用户鼠标从html元素上移开
onkeydown
: 用户按下键盘键
onload
: 浏览器已完成页面加载
条件语句
a) if...else
:用于基于不同的条件来执行不同的动作
if () {
} else if () {
} else if () {
} else {
}
b) switch
:用于基于不同的条件来执行不同的动作
switch(n){case: 1: //代码块break;case: 2: //代码块break;default: //代码块
}
// 使用 default 关键词来规定匹配不存在时做的事情
c) for循环
:一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的
for (语句 1; 语句 2; 语句 3)
{被执行的代码块
}
// 语句 1 (代码块)开始前执行
// 语句 2 定义运行循环(代码块)的条件
// 语句 3 在循环(代码块)已被执行之后执行
for (var i=0;i<cars.length;i++)
{ document.write(cars[i] + "<br>");
}
d) for/in循环
:循环遍历对象的属性
var person={fname:"John",lname:"Doe",age:25};
for (x in person) // x 为属性名
{txt=txt + person[x];
}
e) while循环
:在指定条件为真时循环执行代码块
while (条件)
{需要执行的代码
}
f) do/while循环
: 该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环
do
{需要执行的代码
}
while (条件);
g) break 和 continue 语句
:
break 语句用于跳出循环。
continue 用于跳过循环中的一个迭代。
类型转换
a) 转换为字符串
:String() 、 toString()、自动转换(与字符串连接时)
let a = 1;
console.log( String(a) );
console.log( a.toString() );
console.log( a + '' );// 当你尝试输出一个对象或一个变量时 JavaScript 会自动调用变量的 toString() 方法
document.getElementById("demo").innerHTML = myVar;
myVar = 123 // toString 转换为 "123"
myVar = true // toString 转换为 "true"
myVar = false // toString 转换为 "false"
myVar = {name:"Fjohn"} // toString 转换为 "[object Object]"
myVar = [1,2,3,4] // toString 转换为 "1,2,3,4"
myVar = new Date() // toString 转换为 "Fri Jul 18 2014 09:08:55 GMT+0200"
b) 转换为数字
: Number()、parseFloat()浮点数、parseInt()整数、一元运算符+、自动转换(字符串与数字进行减乘除时)
Number("3.14") // 返回 3.14
Number(" ") // 返回 0
Number("") // 返回 0
Number(false) // 返回 0
Number(true) // 返回 1
Number("99 88") // 返回 NaN
d = new Date();
Number(d) // 返回 1404568027739
一元运算符+ :可将字符串转为数字
一元运算符+, 可将字符串转为数字
var y = "5"; // y 是一个字符串
var x = + y; // x 是一个数字( 5)var y = "John"; // y 是一个字符串
var x = + y; // x 是一个数字 (NaN)
字符串和数字相加,会变成字符串
"5" + 1 // String 返回 "51" 1 转换为 "1"
"5" - 1 // Number 返回 4 "5" 转换为 5
"5" * 1 // Number 返回55 + null // Number 返回 5 null 转换为 0
"5" + null // String 返回"5null" null 转换为 "null"
正则表达式regexp
是由一个字符序列形成的搜索模式。搜索模式可用于文本搜索和文本替换。
语法:
/正则表达式主体/修饰符(可选)
eg:
var patt = /runoob/i (i 搜索不区分大小写)
a) 修饰符: 用于执行区分大小写和全局匹配
b) 方括号: 用于查找某个范围内的字符
c) 元字符: 拥有特殊含义的字符
d) :量词:
错误抛出
try 语句测试代码块的错误。
catch 语句处理错误。
finally 语句在 try 和 catch 语句之后,无论是否有触发异常,该语句都会执行。
throw 语句创建自定义错误。
try {... //异常的抛出,定义在执行时进行错误测试的代码块
} catch(e) {... //异常的捕获与处理,当 try 代码块发生错误时,所执行的代码块
} finally {... //结束处理
}
var message, x;message = document.getElementById("message");message.innerHTML = "";x = document.getElementById("demo").value;try { if(x == "") throw "值为空";if(isNaN(x)) throw "不是数字";x = Number(x);if(x < 5) throw "太小";if(x > 10) throw "太大";}catch(err) {message.innerHTML = "错误: " + err;}
void
a) javascript:void(0): 指定要计算一个表达式但是不返回值
<a href="javascript:void(0)">单击此处什么也不会发生</a>
b) href="#"与href="javascript:void(0)"的区别:
包含了一个位置信息,默认的锚是#是网页的上端,在页面很长的时候会使用 # 来定位页面的具体位置,格式为:# + id。
而javascript:void(0), 仅仅表示一个死链接。