JavaScript学习笔记——对象

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...除此之外JavaScript 允许自定义对象。

一、所有事物都是对象

JavaScript 提供多个内建对象,比如 String、Date、Array 等等。 对象只是带有属性和方法的特殊数据类型。

1.布尔型可以是一个对象。

2.数字型可以是一个对象。

3.字符串也可以是一个对象

4.日期是一个对象

5.数学和正则表达式也是对象

6.数组是一个对象

7.甚至函数也可以是对象

对象只是一种特殊的数据。对象拥有属性方法

1.1 访问对象的属性

属性是与对象相关的值。

访问对象属性的语法是:

objectName.propertyName

1.2 访问对象的方法

方法是能够在对象上执行的动作。

可以通过以下语法来调用方法:

objectName.methodName()

二、创建JavaScript对象

通过 JavaScript,能够定义并创建自己的对象。

创建新对象有两种不同的方法

1.使用 Object 定义并创建对象的实例。

2.使用函数来定义对象,然后创建新的对象实例。

2.1 使用 Object

在 JavaScript 中,几乎所有的对象都是 Object 类型的实例,它们都会从 Object.prototype 继承属性和方法。

Object 构造函数创建一个对象包装器。

Object 构造函数,会根据给定的参数创建对象,具体有以下情况:

1.如果给定值是 null 或 undefined,将会创建并返回一个空对象。

2. 如果传进去的是一个基本类型的值,则会构造其包装类型的对象。

3. 如果传进去的是引用类型的值,仍然会返回这个值,经他们复制的变量保有和源对象相同的引用地址。

4. 当以非构造函数形式被调用时,Object 的行为等同于 new Object()。

语法格式:

// 以构造函数形式来调用

new Object([value])

value 可以是任何值。

示例如下:

以下实例使用 Object 生成布尔对象:

// 等价于 o = new Boolean(true);

var o = new Object(true);

实例这个例子创建了对象的一个新实例,并向其添加了四个属性:

person=new Object();

person.firstname="John";

person.lastname="Doe";

person.age=50;

person.eyecolor="blue";

也可以使用对象字面量来创建对象,语法格式如下:

{ name1 : value1, name2 : value2,...nameN : valueN }

其实就是大括号里面创建 name:value 对,然后 name:value 对之间以逗号 , 隔开。

实例

person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};

注意:JavaScript 对象就是一个 name:value 集合。

可以通过为对象赋值,向已有对象添加新属性

2.2 JavaScript 类

JavaScript 是面向对象的语言,但 JavaScript 不使用类。

在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。

JavaScript 基于 prototype,而不是基于类的。

JavaScript for...in 循环

JavaScript for...in 语句循环遍历对象的属性。

语法

for (variable in object)

{

执行的代码……

}

注意: for...in 循环中的代码块将针对每个属性执行一次。

对象是可变的,它们是通过引用来传递的。

三、prototype(原型对象)

3.1 prototype 继承

所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法:

  1. Date 对象从 Date.prototype 继承。
  2. Array 对象从 Array.prototype 继承。
  3. Person 对象从 Person.prototype 继承。

所有 JavaScript 中的对象都是位于原型链顶端的 Object 的实例。

JavaScript 对象有一个指向一个原型对象的链。当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。

Date 对象, Array 对象, 以及 Person 对象从 Object.prototype 继承。

3.2 添加属性和方法

有的时候我们想要在所有已经存在的对象添加新的属性或方法。

另外,有时候我们想要在对象的构造函数中添加属性或方法。

使用 prototype 属性就可以给对象的构造函数添加新的属性:

四、Number 对象

JavaScript 只有一种数字类型。可以使用也可以不使用小数点来书写数字。

在JavaScript中,数字不分为整数类型和浮点型类型,所有的数字都是由 浮点型类型。 JavaScript 采用 IEEE754 标准定义的 64 位浮点格式表示数字,它能表示最大值(Number.MAX_VALUE)为 ±1.7976931348623157e+308,最小值(Number.MIN_VALUE)为 ±5e-324

此格式用 64 位存储数值,其中 0 到 51 存储数字(片段),52 到 62 存储指数,63 位存储符号:

整数(不使用小数点或指数计数法)最多为 15 位。

小数的最大位数是 17,但是浮点运算并不总是 100% 准确

八进制和十六进制

如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。

注意:绝不要在数字前面写零,除非需要进行八进制转换

默认情况下,JavaScript 数字为十进制显示。

但是可以使用 toString() 方法 输出16进制、8进制、2进制。

Number属性

属性

描述

Number.MAX_VALUE

最大值

Number.MIN_VALUE

最小值

Number.NaN

非数字

Number.NEGATIVE_INFINITY

负无穷,在溢出时返回

Number.POSITIVE_INFINITY

正无穷,在溢出时返回

Number.EPSILON

表示 1 和比最接近 1 且大于 1 的最小 Number 之间的差别

Number.MIN_SAFE_INTEGER

最小安全整数

Number.MAX_SAFE_INTEGER

最大安全整数

数字方法:

方法

描述

Number.parseFloat()

将字符串转换成浮点数,和全局方法 parseFloat() 作用一致

Number.parseInt()

将字符串转换成整型数字,和全局方法 parseInt() 作用一致

Number.isFinite()

判断传递的参数是否为有限数字

Number.isInteger()

判断传递的参数是否为整数

Number.isNaN()

判断传递的参数是否为 isNaN()

Number.isSafeInteger()

判断传递的参数是否为安全整数

五、字符串(String) 对象

String 对象用于处理已有的字符块

一个字符串用于存储一系列字符一个字符串可以使用单引号或双引号

字符串(String)使用长度属性length来计算字符串的长度:

5.1 在字符串中查找字符串

字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置:

实例

var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");

如果没找到对应的字符函数返回-1

lastIndexOf() 方法在字符串末尾开始查找字符串出现的位置。

5.2 内容匹配

match()函数用来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。

实例

var str="Hello world!";
document.write(str.match("world") + "<br>");
document.write(str.match("World") + "<br>");
document.write(str.match("world!"));

5.3 替换内容

replace() 方法在字符串中用某些字符替换另一些字符。

实例

str="Please visit Microsoft!"
var n=str.replace("Microsoft","Runoob");

5.4 字符串大小写转换

字符串大小写转换使用函数 toUpperCase() / toLowerCase():

实例

var txt="Hello World!";       // String
var txt1=txt.toUpperCase();   // txt1 文本会转换为大写
var txt2=txt.toLowerCase();   // txt2 文本会转换为小写

5.5 字符串转为数组

字符串使用split()函数转为数组:

实例

txt="a,b,c,d,e"   // String
txt.split(",");   // 使用逗号分隔
txt.split(" ");   // 使用空格分隔
txt.split("|");   // 使用竖线分隔 

 最后附上一个较于完整的例子:

</head>
<body>
<hr/>
<p id="p1">点击按钮haha查看“haha”首次出现的位置!</p><hr/>
<p id="p2">0</p><hr/>
<p id="p3">请访问 Microsoft!</p><hr/>

<button onclick="myFunction()">点我</button>
<button onclick="ThisFunction()">点我查看结果</button>
<script>
var str="good good study!";
var txt = "Hello World!";

//使用length计算并输出字符串的长度
document.write("<p>" + txt.length + "</p>" + "<hr/>");
//利用indexOf()在字符串中查找字符串
function myFunction(){
	var str=document.getElementById("p1").innerHTML;
	var n=str.indexOf("haha");
	document.getElementById("p2").innerHTML=n+1;
}
//利用match()进行内容匹配
document.write("<hr/>" + str.match("good") + "<br>");
document.write(str.match("day") + "<br>");
document.write(str.match("study") + "<hr/>");
//利用replease()替换内容
function ThisFunction() {
    var str = document.getElementById("p3").innerHTML; 
    var txt = str.replace("Microsoft","wuhu~");
    document.getElementById("p3").innerHTML = txt;
}
//更改字符串的大小写
document.write("<hr/>" + "<p>" + txt.toUpperCase() + "</p>" );
document.write("<p>" + txt.toLowerCase() + "</p>" );
document.write("<p>" + txt + "</p>" + "<hr/>");
</script>

</body>
</html>

文章来源于菜鸟教程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值