JS学习专栏——Javascript引用类型

一、Object类型

1.创建Object实例

//第一种:new操作符后跟Object构造函数
var person = new Object();
person.name = "Nicholas";
//第二种:对象字面量表示法
var person{
    name : "Nicholas",
    age: 29
}

2.访问对象属性

//点表示法
alert(person.name);
//方括号语法(可以通过变量来访问属性,属性名中包含会导致错误的字符时也可以使用)
alert(person[name]);
alert(person[first name]);

二、Array类型

1.创建数组

//第一种:Array构造函数
var values = new Array();
var colors = new Array("red","blue","green");
//第二种:数组字面量表示法
var values = [];
var colors = ["red","blue","green"];

2.栈和队列

  • push()–接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度
  • pop()–从数组末尾移除最后一项,减少数组length值,并返回移除的项
  • shift()–移除数组的第一个项,减少数组length值,并返回移除的项
  • unshift()–在数组前端添加任意个项并返回新数组的长度

3.排序方法

  • reverse()–反转数组项的顺序
  • sort()–按升序排列数组(根据字符串的Unicode码点排序),可以接收一个比较函数作为参数

4.操作方法

  • concat()–创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,并返回新构建的数组
  • slice()–一个参数时,返回从该参数指定位置开始到当前数组末尾的所有项;两个参数时,返回起始位置和结束位置之间的项(不包括结束位置),该方法不影响原数组
  • splice()–删除(两个参数,要删除的第一项的位置、要删除的项数);插入(三个参数,起始位置、0、要插入的项);替换(三个参数,起始位置、要删除的项数、插入任意数量的项)

5.位置方法
–两个方法都接收两个参数:要查找的项、查找起点位置的索引(可选),返回要查找的项在数组中的位置,没找到则返回-1

  • indexOf()–从数组开头向后查找
  • lastIndexOf()–从数组末尾向前查找

6.迭代方法
–接收两个参数:要在每一项上运行的函数、运行该函数的作用域对象(可选)
传入的函数接收三个参数:数组项的值、该项在数组中的位置、数组对象本身

  • every()–对数组中的每一项运行给定函数,如果每一项都返回true,则返回true
  • filter()–对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组
  • forEath()–对数组中的每一项运行给定函数,没有返回值
  • map()–对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
  • some()–对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true
var numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter(function(item,index,array){
    return (item > 2);
})   //[3,4,5,4,3]
var mapResult = numbers.map(function(item,index,array){
    return item * 2;
})   //[2,4,6,8,10,8,6,4,2]

7.缩小方法
–这两个方法会迭代数组的所有项然后构建一个最终返回的值,接收两个参数:在每一项上调用的函数、作为缩小基础的初始值(可选)
传入的函数接收四个参数:前一个值、当前值、该项在数组中的位置、数组对象本身

  • reduce()–从数组第一项开始遍历整个数组
  • reduceRight()–从数组最后一项开始遍历整个数组
//求数组中所有值之和
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev,cur,index,array){
    return prev + cur;
})   //15

8.格式化

  • toFixed()–安照指定的小数位数返回数值的字符串形式
  • toExponential()–返回以指数表示法表示的数值的字符串形式,参数指定输出结果中的小数位数
  • toPrecision()–可能会返回固定大小的格式,也可能返回指数格式,参数为位数表示
var num = 100;
alert(num.toFixed(2));  //"100.00"
alert(num.toExponential(1));  //"1.0e+2"
var num1 = 99;
alert(num.toPrecision(1));  //"1e+2"
alert(num.toPrecision(1));  //"99.0"

三、Data类型

var now = new Date(); //不传参的情况下,新创建的对象自动获得当前日期和时间
var someDate = new Date("May 25,2004"); //后台自动调用Data.pares()

四、RegExp类型

见正则表达式学习篇

五、Functon类型

1.定义函数

  • 函数声明提升:解析器会率先读取函数声明,并使其在执行任何代码之前可用;而函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解释执行
  • 要访问函数的指针而不执行函数的话,必须去掉函数名后面的那对圆括号
//函数声明语法
function sum (num1, num2){
    return num1 + num2;
}
//函数表达式(匿名函数)
var sum = function(num1,num2){
    return num1 + num2;
}; //注意函数末尾的分号

2.函数内部属性

  • this:函数据以执行的环境对象
  • arguments:类数组对象,包含着传入函数中的所有参数
  • callee:该属性是一个指针,指向这个拥有arguments对象的函数
//消除阶乘函数的紧密耦合问题
function factorial(num){
    if(num <= 1){ return 1; }
    else{
        return num * arguments.callee(num-1);
        // return num * factorial(num-1);
    }
}
  • caller:该属性中保存着调用当前函数的引用
function outer(){ inner(); }
function inner(){ alert(inner.caller); }
outer();  //弹出outer函数的源代码
  • length;表示函数希望接收的命名参数的个数
  • apply()和call():这两个方法的用途都是在特定的作用域中调用函数,实际等于设置函数体内this对象的值。两个方法的作用相同,区别仅在于接收参数的方式不同。
  • bind():会创建一个函数的实例,其this值会被绑定到传给bind()函数的值
window.color = "red";
var o = { color: "blue" };
function sayColor(){
    alert(this.color);
}
sayColor.call(this);  //red
sayColor.call(o);  //blue

var objectSayColor = sayColor.bind(o);
objectSayColor();   //blue

六、基本包装类型类型

1.Boolean类型
2.Number类型
3.String类型

七、单体内置对象

1.Global对象
2.Math对象

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值