JS自用学习笔记(一)

185 阅读7分钟

对象的属性和方法

Array 对象属性

Array 用于单个的变量中存储多个值

new Array();
new Array(size);    //size是期望的数组元素个数
new Array(element0, element1, ..., elementn)   //参数列表
  • 对象属性

  1. constructor 返回对创建此对象的数组函数的引用。
array.constructor
  • 数组 constructor 属性返回 function Array() { [native code] }
  • 数字 constructor 属性返回 function Number() { [native code] }
  • 字符串 constructor 属性返回 function String() { [native code] }
  1. length 设置或返回数组中元素的数目。
array.length
  1. prototype 使您有能力向对象添加属性和方法。
Array.prototype.name=value
  • 对象方法

  1. concat() 连接两个或更多的数组,并返回结果。
<script type="text/javascript">
var a = [1,2,3];
document.write(a.concat(4,5));
</script>
1,2,3,4,5
  1. 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>
  1. pop() 删除并返回数组的最后一个元素
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

arr.pop()  //arr:George,John
  1. push() 向数组的末尾添加一个或更多元素,并返回新的长度。
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

arr.push("James")   //George,John,Thomas,James
  1. reverse() 颠倒数组中元素的顺序。
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

arr.reverse()  //Thomas,John,George
  1. shift() 删除并返回数组的第一个元素
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

arr.shift()     //John,Thomas
  1. slice() 从某个已有的数组返回选定的元素
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

arr.slice(1)   //John,Thomas
  1. 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
  1. 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
  1. toString() 把数组转换为字符串,并返回结果。
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

arr.toString()  //arr:George,John,Thomas
  1. toLocaleString() 把数组转换为本地数组,并返回结果。
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

(
arr.toLocaleString()    //arr:George, John, Thomas
  1. 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 对象方法

  1. 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}) 
  1. toString() 把逻辑值转换为字符串,并返回结果。
var boo = new Boolean(true)
document.write(boo.toString())    //true
  1. 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 方法 (不常用)

  1. constructor()用于创建和初始化在类中创建的对象的特殊方法。
  • Class关键字

  1. 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>
  1. 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();
  1. 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 方法

返回当前时间

  1. Date() 返回当日的日期和时间。
  2. getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
  3. getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
  4. getMonth() 从 Date 对象返回月份 (0 ~ 11)。
  5. getFullYear() 从 Date 对象以四位数字返回年份。
  6. getHours() 返回 Date 对象的小时 (0 ~ 23)。
  7. getMinutes() 返回 Date 对象的分钟 (0 ~ 59)
  8. getSeconds() 返回 Date 对象的秒数 (0 ~ 59)
  9. getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
  10. getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
  11. getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。 设置时间
  12. setDate() 设置 Date 对象中月的某一天 (1 ~ 31)
  13. setMonth() 设置 Date 对象中月份 (0 ~ 11)。
  14. setFullYear() 设置 Date 对象中的年份(四位数字)。
  15. toSource() 返回该对象的源代码。 转为字符串
  16. toString() 把 Date 对象转换为字符串
  17. toTimeString() 把 Date 对象的时间部分转换为字符串。
  18. toDateString() 把 Date 对象的日期部分转换为字符串。
  19. toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串
  20. toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
  21. toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。 时间时间
  22. UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
  • toUTCString() 根据世界时,把 Date 对象转换为字符串 关键字+UTC+方法()

Global 全局

  • 顶层函数(全局函数)

  1. decodeURI() 解码某个编码的 URI。
  2. 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/
  1. decodeURIComponent() 解码一个编码的 URI 组件。
  2. 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/
  1. 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
  1. 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>
  1. getClass() 返回一个 JavaObject 的 JavaClass。
getClass(javaobj)
  1. isFinite() 检查某个值是否为有穷大的数。
isFinite(number)    //不是返回false,是返回true
  1. isNaN() 检查某个值是否是数字。
    通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字
isNaN(x)

document.write(isNaN(123));     //false
document.write(isNaN(Hello));  //true
  1. 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>
  1. parseFloat() 解析一个字符串并返回一个浮点数。
document.write(parseFloat(" 60 "))    //60
document.write(parseFloat("40 years"))   //40
document.write(parseFloat("He was 40"))   //NaN
  1. parseInt() 解析一个字符串并返回一个整数。
parseInt() 会根据 string 来判断数字的基数

parseInt("17",8);		//返回 15 (8+7)
parseInt("1f",16);		//返回 31 (16+15)
  1. 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);
  1. parse() 解析一个以JSON格式编写的字符串, 并返回一个JavaScript对象
var obj = JSON.parse('{"firstName":"Bill", "lastName":"Gates"}');
  1. stringify() 将 JavaScript 对象转换为 JSON 字符串。
myObj = { "name":"Bill", "age":19, "city":"Seattle" };
myJSON = JSON.stringify(myObj);

Math()

  • Math 对象属性

  1. E 返回算术常量 e,即自然对数的底数(约等于2.718)。
 Math.E     //2.718281828459045
  1. LN2 返回 2 的自然对数(约等于0.693)。
 Math.LN2   //0.6931471805599453
  1. LN10 返回 10 的自然对数(约等于2.302)。
Math.LN10   //2.302585092994046
  1. LOG2E 返回以 2 为底的 e 的对数(约等于 1.414)。
Math.LOG2E
  1. LOG10E 返回以 10 为底的 e 的对数(约等于0.434)。
Math.LOG10E
  1. PI 返回圆周率(约等于3.14159)。
Math.PI
  1. SQRT1_2 返回返回 2 的平方根的倒数(约等于 0.707)。
Math.SQRT1_2
  1. SQRT2 返回 2 的平方根(约等于 1.414)。
Math.SQRT2

Math 对象方法

  1. abs(x) 返回数的绝对值。
Math.abs(x)

正余弦

  1. acos(x) 返回数的反余弦值。
  2. asin(x) 返回数的反正弦值。
  3. cos(x) 返回数的余弦。
  4. sin(x) 返回数的正弦。
  5. tan(x) 返回角的正切

舍入

  1. ceil(x) 对数进行上舍入。
Math.ceil(5.1)    //6
  1. floor(x) 对数进行下舍入。
Math.ceil(5.9)    //5
  1. round(x) 把数四舍五入为最接近的整数 对数
  2. exp(x) 返回 e 的指数。
Math.exp(1)
  1. log(x)返回数的自然对数(底为e)。
Math.log(x)

最大最小值

  1. max(x,y) 返回 x 和 y 中的最高值
  2. min(x,y) 返回 x 和 y 中的最低值。
  3. sqrt(x) 返回数的平方根。

弧度

  1. atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。
  2. atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。

其他

  1. pow(x,y) 返回 x 的 y 次幂。
  2. random() 返回 0 ~ 1 之间的随机数。