js语法
1. javascript数据类型
JavaScript拥有动态类型。这意味着相同的变量可用作不同的类型:有 字符串,数字, 布尔值, 对象, 数组,Undefined和Null
对象: var person={firstname : "John",lastname : "Doe",id : 5566}; 对象属性有两种寻址方式: name = person.lastname; name = person["lastname"];
Undefinied: 表示这个变量并没有值(没这个变量)Null: 表示这个变量的值为空
声明变量类型:可使用new关键字来对变量类型进行声明var carname = new String;var x= new Number;var y= new Boolean;var cars= new Array;var person = new Object;
* JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象
2. JavaScript 对大小写是敏感的。
3. JavaScript 语句向浏览器发出的命令。语句的作用是告诉浏览器该做什么。 JavaScript 是脚本语言。浏览器会在读取代码时,逐行地执行脚本代码
4. javascript使用分号来分隔语句分号 ;
5. javascript在文本字符串中使用反斜杠对代码行进行换行
document.write("你好 \世界!");
6. 注释: 单行注释以 // 开头 多行注释以 /* 开始,以 */ 结尾
7. 变量: 使用 var 关键词来声明变量
var carname; // 变量声明之后,该变量是空的(它没有值)既值是 undefined var carname="Volvo"; // 声明且赋值
可一条语句同时声明多个变量
var lastname="Doe", age=30, job="carpenter"; //效果等同于
var lastname="Doe" var age=30 var job="carpenter";
局部变量: 函数内部声明的变量(使用 var)是局部变量,只能在函数内部访问它。
全局变量: 不在任何函数内声明的变量是全局变量,网页上的所有脚本和函数都能访问它
生命周期: JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。
* 若向未声明的变量中赋值:
carname="Volvo";// 将声明一个全局变量 carname,即使它在函数内执行。
8. javascript对象: JavaScript 对象是属性和方法的容器
// 对象方法 var person = { name: 'tom', age: 20, behavior: function () { console.log(this.name) }, behavior2: thisMethod // 另一种形式};
function thisMethod () {
console.log('name'); }
// 访问对象方法function testGetObjectMethod () { person.behavior(); person.behavior2();
}
9. javascript作用域: 可理解为可访问变量的集合
在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象
window.myName = 'all can get'; // this variable can get everywhere
* 全局变量,或者函数,可以覆盖 window 对象的变量或者函数。 局部变量,包括 window 对象可以覆盖全局变量和函数。
10. javascript常用事件:
HTML 事件是发生在 HTML 元素上的事情。
HTML 事件可以是浏览器行为,也可以是用户行为。
常用事件: onclick, onchange, onmouseover, onmuseout, onkeydown, onload
11. javascript的字符串对象;
* 反斜杠是一个转义字符。 转义字符将特殊字符转换为字符串字符 eg: \" \\ \n \r
// 字符串属性constructor 返回创建字符串属性的函数length 返回字符串的长度prototype 允许您向对象添加属性和方法
// 字符串方法 charAt() 返回指定索引位置的字符charCodeAt() 返回指定索引位置字符的 Unicode 值concat() 连接两个或多个字符串,返回连接后的字符串fromCharCode() 将 Unicode 转换为字符串indexOf() 返回字符串中检索指定字符第一次出现的位置lastIndexOf() 返回字符串中检索指定字符最后一次出现的位置localeCompare() 用本地特定的顺序来比较两个字符串match() 找到一个或多个正则表达式的匹配replace() 替换与正则表达式匹配的子串search() 检索与正则表达式相匹配的值slice() 提取字符串的片断,并在新的字符串中返回被提取的部分split() 把字符串分割为子字符串数组substr() 从起始索引号提取字符串中指定数目的字符substring() 提取字符串中两个指定的索引号之间的字符toLocaleLowerCase() 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射toLocaleUpperCase() 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射toLowerCase() 把字符串转换为小写toString() 返回字符串对象值toUpperCase() 把字符串转换为大写trim() 移除字符串首尾空白valueOf() 返回某个字符串对象的原始值
12. javascript的 运算符, 比较符, 条件语句, switch语句, for循环, while循环, break和continue等可参照其他语言。
13. typeof 运算符
typeof "John" // 返回 string typeof 3.14 // 返回 number typeof false // 返回 boolean typeof [1,2,3,4] // 返回 object typeof {name:'John', age:34} // 返回 object * 在JavaScript中,数组是一种特殊的对象类型。 因此 typeof [1,2,3,4] 返回 objecttypeof undefined // undefinedtypeof null // object NaN 的数据类型是 number 数组(Array)的数据类型是 object
- 日期(Date)的数据类型为 object
- null 的数据类型是 object
- 未定义变量的数据类型为 undefined
14. javascript的类型转换
全局方法 String() 可以将任何类型的数字,字母,变量,表达式转换为字符串String(x) // 将变量 x 转换为字符串并返回String(123) // 将数字 123 转换为字符串并返回String(100 + 23) // 将数字表达式转换为字符串并返回Number 方法 toString() 也是有同样的效果。x.toString()(123).toString()(100 + 23).toString()String(false) // 返回 "false"String(true) // 返回 "true" false.toString() // 返回 "false" true.toString() // 返回 "true" String(new Date()) // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)obj = new Date() obj.toString() 将字符串转换为数字全局方法 Number() 可以将字符串转换为数字。Number("3.14") // 返回 3.14 Number(" ") // 返回 0 Number("") // 返回 0 Number("99 88") // 返回 NaNNumber.parseInt();Number.parseFloat();将布尔值转换为数字Number(false) // 返回 0 Number(true) // 返回 1 将日期转换为数字d = new Date(); Number(d) // 返回 1404568027739 d = new Date(); d.getTime() // 返回 1404568027739
15. javascript变量提升。
16. javascript的严格模式: "use strict"; 参照: http://www.runoob.com/js/js-strict.html
17. javascript自带的验证API
1.方法: checkValidity() 和 setCustomValidity()
2. 属性: validity = (customError | patternMismatch | rangeOverflow | rangeUnderflow | stepMismatch| tooLong | typeMismatch | valueMissing | valid); validationMessage willValidate
18. javascript的viod(0)
点我没有反应的!死链接 点我定位到指定位置! ...尾部定位点
19. javascript的代码规范
-
复杂语句的通用规则:
- 将左花括号放在第一行的结尾。
- 左花括号前添加一空格。
- 将右花括号独立放在一行。
- 不要以分号结束一个复杂的声明。
- 通常运算符 ( = + - * / ) 前后需要添加空格:
-
对象定义的规则:
- 将左花括号与类名放在同一行。
- 冒号与属性值间有个空格。
- 字符串使用双引号,数字不需要。
- 最后一个属性-值对后面不要添加逗号。
- 将右花括号独立放在一行,并以分号作为结束符号。
-
一般很多代码语言的命名规则都是类似的,例如:
- 变量和函数为驼峰法( camelCase)
- 全局变量为大写 (UPPERCASE )
- 常量 (如 PI) 为大写 (UPPERCASE )
变量命名的几种规则: hyp-hens, camelCase, 或 under_scores