一,内置对象

所谓内置对象,指的是不需要我们自己定义(即系统已经定义好的)、可以直接使用的对象。

在JavaScript中,常用的内置对象有4种:

  1. 字符串对象:String;
  2. 数组对象:Array;
  3. 日期对象:Date;
  4. 数学对象:Math

1. 字符串对象-String

① 获取字符串长度

语法格式:
字符串.length
例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <title></title>
  6. <script>
  7. var str = "I love apple!";
  8. document.write("字符串长度是:"+str.length);
  9. //获取一个数字的长度
  10. function getLength(num)
  11. {
  12. var str = num+"";
  13. return str.length;
  14. }
  15. var result = "568598是"+ getLength(568598)+"位数";
  16. document.write(result);
  17. </script>
  18. </head>
  19. <body>
  20. </body>
  21. </html>

② 大小写转换

JavaScript中有两种大小写转换的方法:
语法格式:
字符串名.toLowerCase()
字符串名.toUpperCase()

③ 获取某一个字符

语法格式:
字符串名.charAt(n)
其中参数n是整数,表示字符串中第n+1个字符(字符串第1个字符的下标是0)。

④ 截取字符串

语法格式:
字符串名.substring(start,end)
注意:
该方法截取的范围为:[start,end);
其中end可以省略,此时截取的范围是从start开始到结束。

⑤ 替换字符串

语法格式:
字符串名.replace(原字符串,替换字符串)
字符串名.replace(正则表达式,替换字符串)

⑥ 分割字符串

语法格式:
字符串名.split("分隔符")
注意:
分隔符可以使一个字符、多个字符或一个正则表达式。
split(“ “)和split(“”)是不一样的,前者分隔符是有空格的,所以表示用空格作为分隔符来分割;后者分隔符是没有空格的,所以可以用来分割字符串每一个字符!
split()方法有两个参数,第一个参数表示分隔符;第二个参数表示获取分割后截取的前n个元素。

⑦ 检索字符串的位置

语法格式:
字符串名.indexOf(指定字符串)
字符串名.lastIndexOf(指定字符串)
注意:
如果字符串中包含指定字符串,indexOf()方法返回指定字符串首次出现的下标,而lastIndexOf()方法返回指定字符串最后一次出现的下标;
如果字符串中不包含指定字符串,则两个方法会返回-1

2. 数组对象

① 数组的创建

语法格式:
var 数组名 = new Array(元素1,元素2,...,元素n);
var 数组名 = [元素1,元素2,...,元素n];

② 数组的获取

语法格式:
数组名[n]
注意:
n为数组下标,即获取数组中第n+1个值
数组的下标(n)是从0开始的

③ 截取数组部分

语法格式:
数组名.slice(start,end);

④ 添加数组元素

语法格式:

在数组开头添加元素:unshift( )

数组名.unshift(新元素1,新元素2,...,新元素n);

在数组结尾添加元素:push()

数组名.push(新元素1,新元素2,...,新元素n);
注意:
push()方法在实际开发中,特别是面向对象开发时用的比较多!

⑤ 删除数组元素

删除数组中第一个元素:shift( )

语法格式:
数组名.shift();

删除数组最后一个元素:pop( )

语法格式:
数组名.pop();
实际上,unshift()、push()、shift()、pop()这4个方法都会改变数组的结构!

⑥ 数组大小比较

语法格式:
数组名.sort(函数名)
注意:
此处的“函数名”是定义数组元素排序的函数名字
例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <title></title>
  6. <script>
  7. function up(a,b)
  8. {
  9. return a-b;
  10. }
  11. function down(a,b)
  12. {
  13. return b-a;
  14. }
  15. var arr = [6,8,9,50,65,18];
  16. arr.sort(up);
  17. document.write("升序:"+arr.join("、")+"<br/>");
  18. </script>
  19. </head>
  20. <body>
  21. </body>
  22. </html>

⑦ 数字颠倒顺序

语法格式:
数组名.reverse();

⑧ 将数组元素连接成字符串

语法格式:
数组名.join("连接符");
注意:
连接符是可选参数,用于指定连接元素之间的符号。
默认情况下,采用英文逗号作为连接符来连接。
例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <title></title>
  6. <script>
  7. var arr = ["HTML","CSS","JAVASCRIPT","jQuery"];
  8. document.write(arr.join()+"<br/>");
  9. document.write(arr.join("*"));
  10. </script>
  11. </head>
  12. <body>
  13. </body>
  14. </html>

3. 时间对象

① 时间对象简介

创建时间的语法格式:
var 日期对象名 = new Date();
用于获取时间的get方法:
image.png
用于设置时间的set方法:
image.png

② 获取星期几

语法格式:
时间对象.getDay();
注意:
getDay()用于获取星期几,而获取日数的方法是getDate()
getDay()返回一个数字,其中0表示星期天,1表示星期一,….

4. 数学对象

① Math对象的属性

image.png
注意:
对于Math对象的属性,我们只需要掌握Math.PI这一个就够了!

在实际开发中,所有的角度都是以“弧度”为单位的,例如:180度应写成Math.PI;360度应写成Math.PI*2。

对于角度,在实际开发中推荐写法: 度数 * Math.PI/180

② Math对象的方法

Math对象中的常用方法:
image.png
Math对象中的不常用方法:
image.png
注意:

  • (1)atan2(y, x)跟atan(x)是不一样的,atan2(y, x)能够精确判断角度对应哪一个角,而atan(x)不能。因此在高级动画开发时,我们大多数用的是atan2(y, x),基本用不到atan(x)。
  • (2)反三角函数用得很少(除了atan2()),一般都是用三角函数,常用的有:sin()、cos()和atan2()。

    ③ 生成随机数

    语法格式:
    Math.random();
    该方法用来生成[0,1)之间的一个随机数!
    随机生成某个范围内的任意数

    Math.random()*m

表示生成0~m之间的随机数;

Math.random()*m+n

表示生成n~m+n之间的随机数

随机数生成某个范围内的整数

Math.floor(Math.random()*(m+1))

表示生成0~m之间的随机整数(包括0和m)

Math.floor(Math.random()*(m-n+1))+n

表示生成n~m之间的随机整数(包括n和m)

例:生成随机验证码
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="uft-8"/>
  5. <title></title>
  6. <script>
  7. var str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
  8. var arr = str.split("");
  9. var result = "";
  10. for(var i=0; i<4; i++)
  11. {
  12. var n = Math.floor(Math.random*arr.length);
  13. result += arr[n];
  14. }
  15. document.write(result);
  16. </script>
  17. </head>
  18. <body></body>
  19. </html>