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语言规范定义的一系列对象,这些对象提供了完成各种任务的方法, 比如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就指向调用函数的这个对象;
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、基本数据类型的值直接存储在栈中,而引用类型的值存储在堆中,变量只是一个指向堆内存的地址引用。
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属性字符串对象字符串长度;
index | 必需。表示字符串中某个位置的数字,即字符在字符串中的下标。 |
返回在指定位置的字符。
注意:字符串中第一个字符的下标是0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。
searchvalue | 必需。规定需检索的字符串值。 |
fromindex | 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。 |
方法可返回某个指定的字符串值在字符串中首次出现的位置。
注释:indexOf() 方法对大小写敏感!
注释:如果要检索的字符串值没有出现,则该方法返回 -1。
searchvalue | 必需。规定需检索的字符串值。 |
fromindex | 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。 |
返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
substr | 必需。需要被替换的字符串值. |
replacement | 必需。替换后的字符串值。 |
字符串中用一些字符替换另一些字符.
默认情况下使用replacement替换找到的第一个substr的值. 如果需要全部替换需要加上全局标志
start | 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 |
length | 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。 |
可在字符串中抽取从 start 下标开始的指定数目的字符。
start | 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。 |
stop | 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。 如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
用于提取字符串中介于两个指定下标之间的字符。
把字符串转换为小写。
把字符串转换为大写。
返回在指定的位置的字符的 Unicode 编码。
var s = “我爱你”;
console.log(s.charCodeAt(1));//获取“爱”的unicode编码。
可接受一个指定的 Unicode 值,然后返回一个字符串。
var s = String.fromCharCode(97,98,99);
console.log(s);
你可以在 JavaScript 中使用反斜杠来向文本字符串添加特殊字符。
代码 | 输出 |
\' | 单引号 |
\" | 双引号 |
\& | 和号 |
\\ | 反斜杠 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\b | 退格符 |
\f | 换页符 |
以上特殊的字符串是不能够单独存在在字符串中,需要通过\来转义.