$5 引用类型

引用类型是一种数据结构,描述了一类对象所具有的属性和方法。它具有以下几种形式:

Object类型:

1.创建Object实例的方法:

a. new操作符

      var person = new Object();
      person.name="gly";

b.对象字面量

      var person={
          name:"gly"
      }

2.访问对象属性方法:

a.点表示方法(一般性方法)
person.name

b.方括号表示方法(当属性为变量时可以采用该方法)
person["name"]

Array类型

1.创建数组
a. Array

var colors=new Array();

b. 数组字面量

var colors=[1,2,3]

2.检测数组:Array.isArray(value)

Paste_Image.png

3.栈方法:push() pop() //在尾部加入删除
4.队列方法:shift() push() //shift() 在头部删除
反队列方法:unshift() pop() //unshift()在头部加入

5.重排序方法:

a.反转数组reverse()
b.排序sort() //注意:sort()方法比较的是字符串,对于数值型会排序错误,并且会直接修改原数组
字符串排序解决方法:加入compare()函数进行比较


Paste_Image.png

6.操作方法:

a.创建副本以及合并concat()
可以创建原数组的副本并且将新添加的放到副本中


Paste_Image.png

b.切割数组中的一部分slice()


Paste_Image.png

c.大boss,最强大的方法,可以做删除、插入、替换splice()

Paste_Image.png

第一个参数为从第几个位置开始,第二个参数为要删除几项,第三个参数为需要加入的内容,最后更改的是原数组a,bcd是删除掉的数组。

7.查找元素位置方法:

a. indexOf()从前往后查:第一个参数为要查找的元素,第二个参数为查找的起始位置
b. lastIndexOf()从后往前查

Paste_Image.png

8.迭代方法:

  a. every()  //每一项都符合返回true
  b. some()  //有一项符合就返回true
  c. forEach()  //无返回值
  d. filter()  //返回符合的原数据
  e. map()  //返回结果集
Paste_Image.png

9.归并方法:
reduce() reduceRight()二者方向不同,这两个方法都会对数组进行迭代,四个参数

Paste_Image.png

Date类型

创建方式:var now=new Date();

Paste_Image.png

返回表示日期的毫秒数:
a. Date.parse()
b. Date.UTC()

Paste_Image.png

获取现在的时间:Date.now()

RegExp类型

创建方式:

a. 字面量方法:
var pattern= /bat/i;

b.构造函数方法:
var pattern=new RegExp("bat","i");

g :全局模式
i :忽略大小写
m:多行模式

Function类型

函数名是一个指向函数对象的指针!!!!

1.创建方式:
a. 函数声明:

    function sum(a,b){
        return a+b;
    }

b.函数表达式:

    var sum=function(a,b){
        return a+b;
    };

c.Function构造函数

    var sum=new Function("a","b","return a+b");

2.函数声明与函数表达式的不同:

函数声明提升

Paste_Image.png

变量sum1提升,但是不会保存对函数的引用。

Paste_Image.png

3.函数内部属性

  1. callee : 一个指针,指向拥有arguments对象的函数(arguments: 保存传入函数的所有参数,以数组形式保存)
function factorial(num){
    if(num<=1)
     return 1;
   } else{          
      return num*arguments.callee(num-1);  //argument.callee等价于factorial,好处:函数变名时对内部没有影响
   }
}
  1. caller: 谁调用了该函数,返回它的引用

谁调用了b()??哦,是a(),那就返回a()的引用,也就是函数a()

Paste_Image.png

4.函数属性和方法:
a. 在特定的作用域中调用函数: apply(作用域,参数数组)
call(作用域,参数)

用sayColor对象的方法作用于window和o对象上。(调用其他对象的方法)

Paste_Image.png

b. bind():也是在特定的作用域中调用函数,只是bind方法会产生一个函数实例,只有对它调用时才会得到结果。所以如果想立即得到结果就用apply(),call(),如果不是,则使用bind().

基本包装类型:

Boolean Number String(注意与boolean number string不同)

基本包装类型:读取基本类型时,后台会创建一个基本包装类型对象,让我们可以对其调用方法操作数据。

Paste_Image.png

在执行第二行代码时,后台会有以下过程:
a. 创建string类型的一个实例; var s1= new String("abcd");
b. 在实例上调用方法; var s2=s1.substring(s1);
c. 销毁实例。 var s1=null;

基本包装类型与引用类型的区别:生存期不同。(引用类型只有在脱离作用域后才会销毁,基本包装类型只有在执行该代码时才存在,一旦执行完毕就销毁)

Paste_Image.png

构造函数(有new)与转型函数(无new)的不同:

Paste_Image.png

String类型:

String对象提供了很多字符串操作的方法:
1.字符串拼接concat()
2.提取部分字符:slice() substring() substr()
3.确定字符串的位置indexOf() lastIndexOf()
4.删除前后的空格trim()
5.字符串大小写方法:toLowerCase() toUpperCase() toLocaleLowerCase() toLocaleUpperCase()
6.字符串匹配:match() search() replace() split()
7.字符串比较: localeCompare()

单体内置对象

在执行代码之前,这些对象已经存在了。

1.Global对象
eval()方法:解析字符串,会将字符串当作实际的代码执行
eval("console.log(1)") //1
eval()中创建的变量和函数不会被提升。

Global对象如何访问:在Web浏览器中,Global对象是window对象的一部分。

2.Math对象:提供完成计算的属性和方法。
最大最小max() min()
向上舍入向下舍入四舍五入 ceil() floor() round()
0-1随机数 random()
产生一个介于[low,up]之间的整数的函数:

    function selectFrom(low,up){
        var choices=up-low+1;
        return Math.floor(Math.random()*8+2);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342

推荐阅读更多精彩内容