总结自:http://outofmemory.cn/javascript/tutorial/js-tutorial.html
字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空(Null)、未定义(Undefined)。
// 字符串 数字 布尔
var str="Hello World";
var x1=34.00;
var x2=34;
var x=true;
// 数组
var arr1 = new Array();
cars[0]="Js";
var arr2 = new Array("Saab","Volvo","BMW");
// 对象
var person = { firstname: "John", lastname: "Doe", id: 5566};
var person=new Object();
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue";
Undefined 这个值表示变量不含有值。
在 JavaScript 中,几乎所有的事物都是对象:字符串(String)、数字(Number)、数组(Array)、日期(Date)、函数(Function),等等。
var carname = new String;
var x = new Number;
var y = new Boolean;
var cars = new Array;
var person = new Object;
在 JavaScript 中, 对象和函数同样也是变量。
在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。
变量在函数内声明,变量为局部作用域,只能在函数内部访问。
变量在函数外定义,即为全局变量。
如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。
函数参数只在函数内起作用,是局部变量。
变量生命周期:
var str = “It’s js”;
var str2 = new String(“Hello”)
不要创建 String 对象。它会拖慢执行速度,并可能产生其他副作用。
算术运算符:
+ 加法
- 减法
* 乘法
/ 除法
% 取模(余数)
++ 自增 x=++y x=y++
-- 自减z
赋值运算符:
=
+=
-=
*=
/=
%=
比较运算符:
== 等于
=== 绝对等于 (值和类型均相等)
!= 不等于
!== 绝对不等于 (值和类型均不相等)
> 大于
< 小于
>= 大于或等于
<= 小于或等于
逻辑运算符:
&& and (x < 10 && y > 1) 为 true
|| or (x==5 || y==5) 为 false
! not !(x==y) 为 true
条件运算符(三元表达式)”
(condition)?value1:value2
if (condition1){
//当条件 1 为 true 时执行的代码
}
else if (condition2){
//当条件 2 为 true 时执行的代码
}
else{
//当条件 1 和 条件 2 都不为 true 时执行的代码
}
switch(n)
{
case 1:
//执行代码块 1
break;
case 2:
//执行代码块 2
break;
default:
//n 与 case 1 和 case 2 不同时执行的代码
}
for 循环
var i;
for(i=0;i<10;i++){
//
}
for in 循环
遍历对象属性:
var x;
var txt="";
var person={fname:"Bill",lname:"Gates",age:56};
for (x in person){
txt=txt + person[x];
}
while (条件)
{
//需要执行的代码
}
do{
//需要执行的代码
}while (条件)
抛出(throw)错误
当错误发生时,JavaScript 引擎通常会停止,并生成一个错误消息。
throw 语句允许我们创建自定义错误。
异常可以是 JavaScript 字符串、数字、逻辑值或对象。
throw exception
捕获错误
try{
//在这里运行代码
}
catch(err){
//在这里处理错误
}
ES3 及 ES5 中的保留关键字:
abstract arguments boolean break byte
case catch char class* const
continue debugger default delete do
double else enum* eval export*
extends* false final finally float
for function goto if implements
import* in instanceof int interface
let long native new null
package private protected public return
short static super* switch synchronized
this throw throws transient true
try typeof var void volatile
while with yield
JavaScript 对象、属性和方法:
Array Date eval function hasOwnProperty
Infinity isFinite isNaN isPrototypeOf length
Math NaN name Number Object
prototype String toString undefined valueOf
JSON 英文全称 JavaScript Object Notation;
var text = '{"name":"Jhon"}';
var obj = JSON.parse(text);
javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。
href="#"与href="javascript:void(0)"的区别 :# 包含了一个位置信息,默认的锚是#top 也就是网页的上端;而javascript:void(0), 仅仅表示一个死链接。
var x = document.cookie;
//
document.write("这是一个标题
");
//
x=document.getElementById("demo"); // 找到元素
x.innerHTML="Hello JavaScript!"; // 改变内容
x.style.color="#ff0000"; // 改变样式
if(x==""||isNaN(x)){}
关于 DOM 的知识点太多,此篇对 DOM 知识点不做重点介绍。更多请参考:http://outofmemory.cn/javascript/tutorial/js-htmldom.html
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数…
此外,JavaScript 允许自定义对象。
var person=new Object();
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue";
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
this.changeName=changeName;
function changeName(name) {
this.lastname=name;
}
}
JavaScript for…in 语句循环遍历对象的属性。
for (variable in object)
{
// code to be executed
}
JavaScript 只有一种数字类型;
如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 “x”,则解释为十六进制数。
默认情况下,JavaScript 数字为十进制显示。
但是你可以使用 toString() 方法 输出16进制、8进制、2进制。
var myNumber = 128;
myNumber.toString(16);
myNumber.toString(8);
myNumber.toString(2);
当数字运算结果超过了JavaScript所能表示的数字上限(溢出),结果为一个特殊的无穷大(infinity)值,在JavaScript中以 Infinity
表示。同样地,当负数的值超过了JavaScript所能表示的负数范围,结果为负无穷大,在JavaScript中以 -Infinity
表示。
NaN
属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。
var x = 1000 / "Apple";
数字属性
MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY
POSITIVE_INFINITY
NaN
prototype
constructor
数字方法
toExponential()
toFixed()
toPrecision()
toString()
valueOf()
属性:
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() 返回某个字符串对象的原始值
new Date() // 当前日期和时间
new Date(milliseconds) //返回从 1970 年 1 月 1 日至今的毫秒数
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)
// demo
var today = new Date()
var d1 = new Date("October 13, 1975 11:13:00")
var d2 = new Date(79,5,24)
var d3 = new Date(79,5,24,11,33,0)
设置日期
var myDate=new Date();
myDate.setFullYear(2010,0,14);
myDate.setDate(myDate.getDate()+5);
使用 getFullYear() 获取年份。
getTime() 返回从 1970 年 1 月 1 日至今的毫秒数。
如何使用 setFullYear() 设置具体的日期。
如何使用 toUTCString() 将当日的日期(根据 UTC)转换为字符串。
如何使用 getDay() 和数组来显示星期,而不仅仅是数字。
创建
// 1: 常规方式:
var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";
// 2: 简洁方式:
var myCars=new Array("Saab","Volvo","BMW");
// 3: 字面:
var myCars=["Saab","Volvo","BMW"];
访问及修改
var name=myCars[0];
myCars[0]="Opel";
更多实例
合并两个数组 - concat()
合并三个数组 - concat()
用数组的元素组成字符串 - join()
删除数组的最后一个元素 - pop()
数组的末尾添加新的元素 - push()
将一个数组中的元素的顺序反转排序 - reverse()
删除数组的第一个元素 - shift()
从一个数组中选择元素 - slice()
数组排序(按字母顺序升序)- sort()
数字排序(按数字顺序升序)- sort()
数字排序(按数字顺序降序)- sort()
在数组的第2位置添加一个元素 - splice()
转换数组到字符串 -toString()
在数组的开头添加新元素 - unshift()
var myBoolean=new Boolean();
如果布尔对象无初始值或者其值为:
0
-0
null
""
false
undefined
NaN
那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 “false” 时)!
var x=Math.PI;
var y=Math.sqrt(16);
Math.E
Math.PI
Math.SQRT2
Math.SQRT1_2
Math.LN2
Math.LN10
Math.LOG2E
Math.LOG10E
Math.random() 函数返回一个浮点, 伪随机数在范围[0,1),也就是说,从0(包括0)往上,但是不包括1(排除1),然后您可以缩放到所需的范围。实现将初始种子选择到随机数生成算法;它不能被用户选择或重置。
Math.min([value1[,value2, ...]]) 给定数值中最小的数。如果任一参数不能转换为数值,则返回NaN。
Math.floor(x) 向下取整,一个表示小于或等于指定数字的最大整数的数字。
更多请参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/
var patt= new RegExp(pattern , modifiers);