最近项目离需要开发Chrome插件,需要接触JavaScript,大致学习了一下JavaScript。
JS学习
为了达到最佳的可读性,程序员们常常喜欢把代码行控制在 80 个字符以内。
也可以在字符串中换行,通过一个反斜杠即可
如果 JavaScript 语句太长,对其进行折行的最佳位置是某个运算符
关键词 | 描述 |
---|---|
break | 终止 switch 或循环。 |
continue | 跳出循环并在顶端开始。 |
debugger | 停止执行 JavaScript,并调用调试函数(如果可用)。 |
do … while | 执行语句块,并在条件为真时重复代码块。 |
for | 标记需被执行的语句块,只要条件为真。 |
function | 声明函数。 |
if … else | 标记需被执行的语句块,根据某个条件。 |
return | 退出函数。 |
switch | 标记需被执行的语句块,根据不同的情况。 |
try … catch | 对语句块实现错误处理。 |
var | 声明变量。 |
JavaScript 不会把 VAR 或 Var 译作关键词 var。
JavaScript 中不能使用连字符。它是为减法预留的。
JavaScript 使用 Unicode 字符集。
Unicode 覆盖世界上几乎所有的字符、标点和符号。
当数值和字符串相加时,JavaScript 将把数值视作字符串。
JavaScript 拥有动态类型。这意味着相同变量可用作不同类型
JavaScript 只有一种数值类型。写数值时用不用小数点均可
布尔值只有两个值:true 或 false。
var cars = ["Porsche", "Volvo", "BMW"];
数组索引基于零,这意味着第一个项目是 [0],第二个项目是 [1],以此类推。
JavaScript 对象用花括号来书写。
对象属性是 name:value 对,由逗号分隔。
实例
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
使用 JavaScript 的 typeof 来确定 JavaScript 变量的类型
任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。
在 JavaScript 中,null 是 “nothing”。它被看做不存在的事物。
不幸的是,在 JavaScript 中,null 的数据类型是对象。
您可以把 null 在 JavaScript 中是对象理解为一个 bug。它本应是 null。
您可以通过设置值为 null 清空对象:
实例
var person = null; // 值是 null,但是类型仍然是对象
Undefined 与 Null 的区别
Undefined 与 null 的值相等,但类型不相等:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
typeof 运算符把数组返回为 “object”,因为在 JavaScript 中数组即对象。
在 JavaScript 函数中声明的变量,会成为函数的局部变量。
局部变量只能在函数内访问。
对象方法: 对象也可以有方法。 方法是在对象上执行的动作。 方法以函数定义被存储在属性中。
在函数定义中,this 引用该函数的“拥有者”。this 指的是“拥有” fullName 函数的 person 对象。
常见的 HTML 事件
下面是一些常见的 HTML 事件:
事件 | 描述 |
---|---|
onchange | HTML 元素已被改变 |
onclick | 用户点击了 HTML 元素 |
onmouseover | 用户把鼠标移动到 HTML 元素上 |
onmouseout | 用户把鼠标移开 HTML 元素 |
onkeydown | 用户按下键盘按键 |
onload | 浏览器已经完成页面加载 |
\ 转义字符: 反斜杠转义字符把特殊字符转换为字符串字符
avaScript 中有效的转义序列:
代码 | 结果 |
---|---|
\b | 退格键 |
\f | 换页 |
\n | 新行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
=== 运算符需要类型和值同时相等。
请注意 (x== y) 与 (x===y) 的区别。
JavaScript 对象无法进行对比,比较两个 JavaScript 将始终返回 false。
获取方法用于获取日期的某个部分(来自日期对象的信息)。下面是最常用的方法(以字母顺序排序):
方法 | 描述 |
---|---|
getDate() | 以数值返回天(1-31) |
getDay() | 以数值获取周名(0-6) |
getFullYear() | 获取四位的年(yyyy) |
getHours() | 获取小时(0-23) |
getMilliseconds() | 获取毫秒(0-999) |
getMinutes() | 获取分(0-59) |
getMonth() | 获取月(0-11) |
getSeconds() | 获取秒(0-59) |
getTime() | 获取时间(从 1970 年 1 月 1 日至今) |
var d = new Date();
document.getElementById("demo").innerHTML = d.getTime();
在 JavaScript 中,第一个月(1 月)是月号 0,因此 12 月返回月号 11。
设置方法用于设置日期的某个部分。下面是最常用的方法(按照字母顺序排序):
方法 | 描述 |
---|---|
setDate() | 以数值(1-31)设置日 |
setFullYear() | 设置年(可选月和日) |
setHours() | 设置小时(0-23) |
setMilliseconds() | 设置毫秒(0-999) |
setMinutes() | 设置分(0-59) |
setMonth() | 设置月(0-11) |
setSeconds() | 设置秒(0-59) |
setTime() | 设置时间(从 1970 年 1 月 1 日至今的毫秒数) |
JavaScript 随机:
Math.random() 返回 0(包括) 至 1(不包括) 之间的随机数
Math.random() 与 Math.floor() 一起使用用于返回随机整数。
Math.floor(Math.random() * 100) + 1; // 返回 1 至 100 之间的数
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min) ) + min;
}
这个 JavaScript 函数始终返回介于 min 和 max(都包括)之间的随机数
假如您需要运行代码多次,且每次使用不同的值,那么循环(loop)相当方便使用。
for (i = 0; i < cars.length; i++) {
text += cars[i] + "<br>";
}
可以在语句 1 中初始化多个值(由逗号分隔):
for (i = 0, len = cars.length, text = ""; i < len; i++) {
text += cars[i] + "<br>";
}
而且您还可以省略语句 1(比如在循环开始前设置好值):
var i = 2;
var len = cars.length;
var text = "";
for (; i < len; i++) {
text += cars[i] + "<br>";
}
如果省略语句 2,那么必须在循环中提供一个 break。否则循环永远不会结束。
语句 3 也是可选的。
语句 3 可做任何事情,比如负递增(i–),正递增(i = i + 15),或者任何其他事情。
语句 3 也可被省略(比如当您在循环内递增值时):
var i = 0;
var len = cars.length;
for (; i < len; ) {
text += cars[i] + "<br>";
i++;
}
JavaScript for/in 语句遍历对象的属性:
var person = {fname:"Bill", lname:"Gates", age:62};
var text = "";
var x;
for (x in person) {
text += person[x];
}