JavaScript
try catch
try {
// throw exception
}catch (e) {
// exception capture and handing
}finally {
// ending processing
// certain executing
}
tip
js中所有数据均已64位**浮点型(float)**数据来存储,所有的编程语言对浮点型数据的精确度都很难确定。
在js中,return是一个完整的语句
function x(parme) {
var p1 = 1;
return
p1;
//此程序会报错(undefined),因为程序在return这一行已经结束
}
js form
function v1() {
var x = document.forms["myForm"]["myName"].value();
if (x == null || x ==""){
alert("Please enter your name !");
return false;
}
}
<form name="myForm" onsubmit="return v1()" method="post">
name:<input type="text" name="myName">
<input type="submit" value="submit">
</form>
- 也可以通过浏览器来自动完成
<form action="" method="post">
<input type="text" name="myName" required="required">
<input type="submit" value="submit">
</form>
data validation(验证)
- 必须字段是否已输入?
- 用户输入的数据是否合法?
- 在数字字段是否输入了文本?
disabled
max:规定输入的元素不可用
min:规定输入的最大值
pattern:规定输入的最小值
required:规定是必填的
type:规定输入元素的类型
form validation
js可用来在数据被送往服务器前对html表单中的这些数据进行验证
- 验证表单数据是否为空?
- 验证email地址是否合法?
function f1() {
var x = document.forms["myForm"]["email"].value();
var x1 = x.indexOf("@");
var x2 = x.lastIndexOf(".");
if (x1<1 || x2<x1+2 || x2+2>=x.length) {
alert("It's a illagal email type !");
}
}
<form name="myForm" method="post" onsubmit="return f1();">
<input type="text" name="email" required="required">
<input type="submit" value="submit">
</form>
this
- 在对象方法中,this指向调用它所在方法的对象
- 单独使用this,则它指向全局(Global)对象
- 浏览器中,window就是该全局对象(object window)
- 事件中的this,直接指向接收事件的html元素
<button onclick="this.style.color='red'">
点我之后就变红了
</button>
Js Block Scope(块级作用域)
{
let x = 1;//x仅在{}中生效
}
var & let & const
var x = 10;//输出10
{
var x = 1;//输出位1
}
//这里输出为1
var x = 10;
// 这里输出 x 为 10
{
let x = 1;
// 这里输出 x 为 2
}
// 这里输出 x 为 10
- const定义常量,必须初始化;而let不用
- const定义的值不能被修改,也不能再次声明;而let定义的变量值可以修改
JavaScript Object Notation(vital)
- 用于存储和传输数据的格式
- 通常用于服务端向网页传输数据
- 是一种轻量级的数据交换格式
grammar
数据为键值对;数据由逗号分隔;大括号保存对象。
//json数组
"sites":[
{"name":"Google", "url":"www.google.com"},
{"name":"Taobao", "url":"www.jd.com"}
]