对象的属性和方法
Array 对象属性
Array 用于单个的变量中存储多个值
new Array();
new Array(size); //size是期望的数组元素个数
new Array(element0, element1, ..., elementn) //参数列表
-
对象属性
constructor返回对创建此对象的数组函数的引用。
array.constructor
- 数组 constructor 属性返回
function Array() { [native code] } - 数字 constructor 属性返回
function Number() { [native code] } - 字符串 constructor 属性返回
function String() { [native code] }
length设置或返回数组中元素的数目。
array.length
prototype使您有能力向对象添加属性和方法。
Array.prototype.name=value
-
对象方法
concat()连接两个或更多的数组,并返回结果。
<script type="text/javascript">
var a = [1,2,3];
document.write(a.concat(4,5));
</script>
1,2,3,4,5
join()把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr.join() //arr:George,John,Thomas
</script>
pop()删除并返回数组的最后一个元素
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr.pop() //arr:George,John
push()向数组的末尾添加一个或更多元素,并返回新的长度。
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr.push("James") //George,John,Thomas,James
reverse()颠倒数组中元素的顺序。
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr.reverse() //Thomas,John,George
shift()删除并返回数组的第一个元素
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr.shift() //John,Thomas
slice()从某个已有的数组返回选定的元素
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr.slice(1) //John,Thomas
sort()对数组的元素进行排序
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr.sort()) //Adrew,George,James,John,Martin,Thomas
splice()删除元素,并向数组添加新元素。
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
arr.splice(2,0,"William") //George,John,William,Thomas,James,Adrew,Martin
toString()把数组转换为字符串,并返回结果。
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr.toString() //arr:George,John,Thomas
toLocaleString()把数组转换为本地数组,并返回结果。
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
(
arr.toLocaleString() //arr:George, John, Thomas
unshift()向数组的开头添加一个或更多元素,并返回新的长度。
arrayObject.unshift(newelement1,newelement2,....,newelementX)
| newelement1 | 必需。向数组添加的第一个元素。 |
|---|---|
| newelement2 | 可选。向数组添加的第二个元素。 |
| newelementX | 可选。可添加若干个元素。 |
var arr = new Array()
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr.unshift("William") //arr:William,George,John,Thomas
Boolean 对象属性
Boolean 对象表示两个值:"true" 或 "false"
new Boolean(value); //构造函数
Boolean(value); //转换函数
Boolean 对象属性
- constructor 返回对创建此对象的 Boolean 函数的引用
- prototype 使您有能力向对象添加属性和方法。
Boolean 对象方法
toSource()返回该对象的源代码。
function employee(name,job,born)
{
this.name=name;
this.job=job;
this.born=born;
}
var bill=new employee("Bill Gates","Engineer",1985);
document.write(bill.toSource());
结果
({name:"Bill Gates", job:"Engineer", born:1985})
toString()把逻辑值转换为字符串,并返回结果。
var boo = new Boolean(true)
document.write(boo.toString()) //true
valueOf()返回 Boolean 对象的原始值。
var bool = new Boolean(false);
document.write(bool.valueOf());
Class类
不使用关键字 function 来对其初始化,而是使用关键字 class
class Car { // 创建类
constructor(brand) { // 类构造方法
this.carname = brand; // 类主体/属性
}
}
mycar = new Car("Ford"); // 创建 Car 类的对象
-
Class 方法 (不常用)
constructor()用于创建和初始化在类中创建的对象的特殊方法。
-
Class关键字
extends扩展类(继承)
<p id="demo"></p>
<script>
class Car {
constructor(brand) {
this.carname = brand;
}
present() {
return 'I have a ' + this.carname;
}
}
class Model extends Car {
constructor(brand, mod) {
super(brand);
this.model = mod;
}
show() {
return this.present() + ', it is a ' + this.model;
}
}
mycar = new Model("Ford", "Mustang");
document.getElementById("demo").innerHTML = mycar.show();
</script>
static为类定义静态方法。
<p id="demo"></p>
<script>
class Car {
constructor(brand) {
this.carname = brand;
}
static hello() { // static 方法
return "Hello!!";
}
}
mycar = new Car("Tesla");
document.getElementById("demo").innerHTML = Car.hello();
super引用父类。
<p id="demo"></p>
<script>
class Car {
constructor(brand) {
this.carname = brand;
}
present() {
return 'I have a ' + this.carname;
}
}
class Model extends Car {
constructor(brand, mod) {
super(brand);
this.model = mod;
}
show() {
return this.present() + ', it is a ' + this.model;
}
}
mycar = new Model("Tesla", "Model3");
document.getElementById("demo").innerHTML = mycar.show();
</script>
Date 对象
-
Date 对象属性
constructor 返回对创建此对象的 Date 函数的引用。
prototype 使您有能力向对象添加属性和方法。
-
Date 方法
返回当前时间
Date()返回当日的日期和时间。getDate()从 Date 对象返回一个月中的某一天 (1 ~ 31)。getDay()从 Date 对象返回一周中的某一天 (0 ~ 6)。getMonth()从 Date 对象返回月份 (0 ~ 11)。getFullYear()从 Date 对象以四位数字返回年份。getHours()返回 Date 对象的小时 (0 ~ 23)。getMinutes()返回 Date 对象的分钟 (0 ~ 59)getSeconds()返回 Date 对象的秒数 (0 ~ 59)getMilliseconds()返回 Date 对象的毫秒(0 ~ 999)。getTime()返回 1970 年 1 月 1 日至今的毫秒数。getTimezoneOffset()返回本地时间与格林威治标准时间 (GMT) 的分钟差。 设置时间setDate()设置 Date 对象中月的某一天 (1 ~ 31)setMonth()设置 Date 对象中月份 (0 ~ 11)。setFullYear()设置 Date 对象中的年份(四位数字)。toSource()返回该对象的源代码。 转为字符串toString()把 Date 对象转换为字符串toTimeString()把 Date 对象的时间部分转换为字符串。toDateString()把 Date 对象的日期部分转换为字符串。toLocaleString()根据本地时间格式,把 Date 对象转换为字符串toLocaleTimeString()根据本地时间格式,把 Date 对象的时间部分转换为字符串。toLocaleDateString()根据本地时间格式,把 Date 对象的日期部分转换为字符串。 时间时间UTC()根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
- toUTCString() 根据世界时,把 Date 对象转换为字符串 关键字+UTC+方法()
Global 全局
-
顶层函数(全局函数)
decodeURI()解码某个编码的 URI。encodeURI()把字符串编码为 URI。
<script type="text/javascript">
var test1="http://www.w3school.com.cn/My first/"
document.write(encodeURI(test1)+ "<br />")
document.write(decodeURI(test1))
</script>
结果:
http://www.w3school.com.cn/My%20first/\
http://www.w3school.com.cn/My first/
decodeURIComponent()解码一个编码的 URI 组件。encodeURIComponent()把字符串编码为 URI 组件。
<script type="text/javascript">
var test1="http://www.w3school.com.cn/My first/"
document.write(encodeURIComponent(test1)+ "<br />")
document.write(decodeURIComponent(test1))
</script>
结果
http%3A%2F%2Fwww.w3school.com.cn%2FMy%20first%2F
http://www.w3school.com.cn/My first/
escape()对字符串进行编码。 十六进制的转义序列
<script type="text/javascript">
document.write(escape("Visit W3School!") + "<br />")
document.write(escape("?!=()#%&"))
</script>
结果
Visit%20W3School%21
%3F%21%3D%28%29%23%25%26
eval()计算 JavaScript 字符串,并把它作为脚本代码来执行。
<script type="text/javascript">
eval("x=10;y=20;document.write(x*y)")
document.write(eval("2+2"))
var x=10
document.write(eval(x+17))
</script>
getClass()返回一个 JavaObject 的 JavaClass。
getClass(javaobj)
isFinite()检查某个值是否为有穷大的数。
isFinite(number) //不是返回false,是返回true
isNaN()检查某个值是否是数字。
通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字
isNaN(x)
document.write(isNaN(123)); //false
document.write(isNaN(Hello)); //true
Number()把对象的值转换为数字。
<script type="text/javascript">
var test1= new Boolean(true);
var test2= new Boolean(false);
var test3= new Date();
var test4= new String("999");
var test5= new String("999 888");
document.write(Number(test1)+ "<br />"); //1
document.write(Number(test2)+ "<br />"); //0
document.write(Number(test3)+ "<br />"); //1256657776588
document.write(Number(test4)+ "<br />"); //999
document.write(Number(test5)+ "<br />"); //NaN
</script>
parseFloat()解析一个字符串并返回一个浮点数。
document.write(parseFloat(" 60 ")) //60
document.write(parseFloat("40 years")) //40
document.write(parseFloat("He was 40")) //NaN
parseInt()解析一个字符串并返回一个整数。
parseInt() 会根据 string 来判断数字的基数
parseInt("17",8); //返回 15 (8+7)
parseInt("1f",16); //返回 31 (16+15)
String()把对象的值转换为字符串。 第二个参数可以不写
String(object)
var test5= new Date(); //Wed Oct 28 00:17:40 UTC+0800 2009
var test6= new String("999 888"); //999 888
var test7=12345; //12345
Json (很重要!!!!!)
-
Json 方法
// JavaScript 对象...:
var myObj = { "name":"Bill", "age":19, "city":"Seattle" };
// ...转换为 JSON:
var myJSON = JSON.stringify(myObj);
parse()解析一个以JSON格式编写的字符串, 并返回一个JavaScript对象
var obj = JSON.parse('{"firstName":"Bill", "lastName":"Gates"}');
stringify()将 JavaScript 对象转换为 JSON 字符串。
myObj = { "name":"Bill", "age":19, "city":"Seattle" };
myJSON = JSON.stringify(myObj);
Math()
-
Math 对象属性
E返回算术常量 e,即自然对数的底数(约等于2.718)。
Math.E //2.718281828459045
LN2返回 2 的自然对数(约等于0.693)。
Math.LN2 //0.6931471805599453
LN10返回 10 的自然对数(约等于2.302)。
Math.LN10 //2.302585092994046
LOG2E返回以 2 为底的 e 的对数(约等于 1.414)。
Math.LOG2E
LOG10E返回以 10 为底的 e 的对数(约等于0.434)。
Math.LOG10E
PI返回圆周率(约等于3.14159)。
Math.PI
SQRT1_2返回返回 2 的平方根的倒数(约等于 0.707)。
Math.SQRT1_2
SQRT2返回 2 的平方根(约等于 1.414)。
Math.SQRT2
Math 对象方法
abs(x)返回数的绝对值。
Math.abs(x)
正余弦
acos(x)返回数的反余弦值。asin(x)返回数的反正弦值。cos(x)返回数的余弦。sin(x)返回数的正弦。tan(x)返回角的正切
舍入
ceil(x)对数进行上舍入。
Math.ceil(5.1) //6
floor(x)对数进行下舍入。
Math.ceil(5.9) //5
round(x)把数四舍五入为最接近的整数 对数exp(x)返回 e 的指数。
Math.exp(1)
log(x)返回数的自然对数(底为e)。
Math.log(x)
最大最小值
max(x,y)返回 x 和 y 中的最高值min(x,y)返回 x 和 y 中的最低值。sqrt(x)返回数的平方根。
弧度
atan(x)以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。atan2(y,x)返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。
其他
pow(x,y)返回 x 的 y 次幂。random()返回 0 ~ 1 之间的随机数。