JavaScript 对象
作者:互联网
什么是对象
1.在现实世界中,任何(实体/所有的东西)都可叫对象,比如“人”可看作一个对象。
“人”具有姓名、性别、年龄、身高、体重等特征,“人”可以吃饭、可以开车、可以运动等动作(具有这些功能)。
一个杯子就是一个对象,杯子有什么特征:形状、用途、花纹。。。 杯子:装水;
圆、喝水、无 功能:装水。
2.简单的讲,对象就是一组属性与方法的集合,比如:“人”的属性(特征)有身高、体重,“人”的功能有吃饭、开车、睡觉等。
3.对象是一种复合数据类型,或者称为引用类型。
基本数据类型只能用于描述单个数据,而引用类型是一个可以描述多个数据的集合。
比如:
基本数据类型描述数据,每个变量只能描述某个事物的一个特征;
var name = ”老板”;
var age = 18;
var height = 1.78;
引用数据类型,则具有描述事物的能力;
var user = new Object(); //创建一个对象来描述一个事物,或者一个事物在js中就是一个对象。
//以上对象描述的是一个人,那么我们就可以给这个对象添加一些车的属性(特征)
user.name = “赵菊儿”;
user.age = 18;
user.height = 1.80;
//当然对象应该拥有一些行为(方法、功能),比如:拥有一个自我介绍的方法。
user.display=function(){
console.log(“各位好!,我是”+this.name+”,今年”+this.age+”岁”);
};
对象:对象由属性和方法组成;
属性:描述对象自身的特征;比如人的姓名,猪的体重;
方法:对象具有的行为和功能,比如人可以拥有一个“自我介绍”功能;
对象的分类
JavaScript(内置对象)内建对象
由JavaScript语言规范定义的一系列对象,这些对象提供了完成各种任务的方法,
比如Math对象,String对象,Date对象等
var date = new Date();//日期对象
console.log(date.getSeconds());
console.log(date.getHours());
自定义对象
自定义对象:由程序员创建描述特定事物的对象;
编程语言中,创建对象往往比现实生活中找对象来的快的多,你只需要通过new 类型()就ok了。
比如:var user = new Object(); //创建了一个对象
user.name = “王花花”; // 为对象添加属性(特征)
user.sex = true;
user.showInfo = function(){
//this指向user. this==user;
console.log(“我是:”+this.name+“,是一个”+this.sex?”男人”:”女人”);
};
var myGirl = {
name:'小华',
age:18,
height:2.8,
run:function(){
alert('跑步走...');
}
};
方法中的this
当一个函数作为对象的属性存在时,并且通过对象调用这个方法,那么函数中的this就指向调用函数的这个对象;
function sayName(){
console.log(this.name);
}
var ergou = {
name :”二狗”,
say:sayName
};
ergou.say();//二狗
var juer = {
name :”菊儿”,
say:sayName
};
juer.say();//菊儿
this指向对象的好处在于,可以更加方便的对象自身的内部成员。
基本类型与引用类型区别
1、基本类型和引用类型,都是数据类型;
2、数据的值都存储在内存中;
3、程序在运行时,会把内存划分不同区域,其中最重要的两个区域,是栈和堆。
4、栈中的值占用空间固定,而堆中是动态分配的内存;
5、所有的变量都存储在栈
6、基本数据类型的值直接存储在栈中,而引用类型的值存储在堆中,变量只是一个指向堆内存的地址引用。
String对象
什么是字符串对象
JS中字符串可以是基本数据类型,也可以是引用数据类型,具体是哪一种根据我们创建的方式而定;
var s1 = “aaa” ; //基本数据类型
var s2 = new String(“bbb”) //引用数据类型
var str1 = “abcd”; //简单常用的定义形式
var str2 = ‘abcd’;
var str3 = new String(“abcd”); //标准定义形成
var str4 = new String(‘abcd’);
以上都是字符串,只是不同的数据类型而已,及存储的位置也不同。
注意点:JS中基本数据类型(存储字符串值的能力)与JS引用数据类型(存储字符串值、长度、方法(功能))虽然从类型的角度来讲,他们的确不同,但是使用的时候其实差异不大,简单理解:就是说JS中的基本数据类型可以当成对应的引用类型来使用,后面章节中会有直观体会;
为什么使用字符串对象
因为在JavaScript中为字符串对象提供了很多现成对字符串处理的方法和属性,借助于现有的方法和属性可以对对象中的字符串进行处理. 我们在工作中遇到的数据最多也是字符串类型的数据.
字符串的属性和方法
JavaScript为字符串对象定义了很多方法和属性,通过对象可以直接是调用方法和数据对自身的字符串进行处理.
语法:
字符串对象.属性
字符串对象.方法名()
属性length
length属性字符串对象字符串长度;
stringObject.charAt(index)
必需。表示字符串中某个位置的数字,即字符在字符串中的下标。 |
返回在指定位置的字符。
注意:字符串中第一个字符的下标是0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。
stringObject.indexOf(searchvalue,fromindex)
searchvalue | 必需。规定需检索的字符串值。 |
fromindex | 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。 |
方法可返回某个指定的字符串值在字符串中首次出现的位置。
注释:indexOf() 方法对大小写敏感!
注释:如果要检索的字符串值没有出现,则该方法返回 -1。
stringObject.lastIndexOf(searchvalue,fromindex)
searchvalue | 必需。规定需检索的字符串值。 |
fromindex | 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。 |
返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
stringObject.replace(substr,replacement)
substr | 必需。需要被替换的字符串值. |
replacement | 必需。替换后的字符串值。 |
字符串中用一些字符替换另一些字符.
默认情况下使用replacement替换找到的第一个substr的值. 如果需要全部替换需要加上全局标志
stringObject.substr(start,length)
start | 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 |
length | 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。 |
可在字符串中抽取从 start 下标开始的指定数目的字符。
stringObject.substring(start,stop)
start | 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。 |
stop | 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。 如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
用于提取字符串中介于两个指定下标之间的字符。
stringObject.toLowerCase()
把字符串转换为小写。
stringObject.toUpperCase()
把字符串转换为大写。
stringObject.charCodeAt()
返回在指定的位置的字符的 Unicode 编码。
var s = “我爱你”;
console.log(s.charCodeAt(1));//获取“爱”的unicode编码。
String.fromCharCode()
可接受一个指定的 Unicode 值,然后返回一个字符串。
var s = String.fromCharCode(97,98,99);
console.log(s);
特殊字符串
你可以在 JavaScript 中使用反斜杠来向文本字符串添加特殊字符。
代码 | 输出 |
\' | 单引号 |
\" | 双引号 |
\& | 和号 |
\\ | 反斜杠 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\b | 退格符 |
\f | 换页符 |
以上特殊的字符串是不能够单独存在在字符串中,需要通过\来转义.
标签:对象,JavaScript,数据类型,var,user,字符串,stringObject 来源: https://blog.csdn.net/qq_36194388/article/details/119118963