java高级程序设计报告,javascript高级程序设计阅读总结

5章 引用类型

1、object类型

创建

1、var obj ={} ---对象字面量

2、var obj = new Object(); ---new操作符

2、Array类型

创建

1、var arr = new Array();

2、var arr = [];

检测数组

instanceof

Array.isArray()

转换方法

所有对象都具有 toLocaleString() 、 toString() 和 valueOf() 方法

join() ----数组转为字符串

栈方法、队列方法

push() 和 pop() ---向后推入(返回值为长度) 和 弹出(返回值为弹出值)

unshift() 和 shift() ---向前推入(返回值为长度) 和 弹出(返回值为弹出值)

重排序方法

reverse() ---反转数组项的顺序

sort() ---按升序排列数组项

//比较函数(数字排序)

function compare1(value1, value2){

return value2 - value1;

}

//对象按照对应的属性排序

var arr =[{

'name': 'ccc',

'age': 12,

},{

'name': 'bbb',

'age': 8,

},

{

'name': 'aaa',

'age': 45,

}]

function compare(propertyName){

return function(obj1,obj2){

var value1 = obj1[propertyName];

var value2 = obj2[propertyName];

if(value1

return -1;

}else if(value1>value2){

return 1;

}else{

return 0;

}

}

}

var resulte = arr.sort(compare('name'));

console.log(resulte)

操作方法

concat()---基于当前数组中的所有项创建一个新数组(数组拼接)

slice()---接受一或两个参数,即要返回项的起始和结束位置(数组切割)

splice()

删除 需提供第一项的位置,第二项为删除的个数

插入 需提供第一项的位置,第二项为0,第三项为插入的内容

替换 需提供第一项的位置,第二项为需替换的个数,第三项为插入的内容

位置方法

indexOf() 和 lastIndexOf() ---这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引

迭代方法

every() :对数组中的每一项运行给定函数,如果该函数对每一项都返回 true ,则返回 true 。

some() :对数组中的每一项运行给定函数,如果该函数对任一项返回 true ,则返回 true 。

filter() :对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。

map() :对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

forEach() :对数组中的每一项运行给定函数。这个方法没有返回值。

归并方法

reduce() 和 reduceRight():这两个方法都会迭代数组的所有项,然后构建一个最终返回的值

//reduceRight() 从右开始

var values = [1,2,3,4,5];

var sum = values.reduce(function(prev, cur, index, array){

return prev + cur;

});

alert(sum); //15

3、Date类型

创建

var date = new Date();

日期格式化方法:

toDateString() ——以特定于实现格式显示星期几、月、日和年;

toTimeString() ——以特定于实现的格式显示时、分、秒和时区;

toLocaleDateString() ——以特定于地区的格式显示星期几、月、日和年;

toLocaleTimeString() ——以特定于实现的格式显示时、分、秒;

toUTCString() ——以特定于实现的格式完整的 UTC 日期。

日期/时间组件方法:

getTime() 返回表示日期的毫秒数;与 valueOf() 方法返回的值相同

getFullYear() 取得4位数的年份(如2007而非仅07)

getMonth() 返回日期中的月份,其中0表示一月,11表示十二月

getDate() 返回日期月份中的天数(1到31)

getDay() 返回日期中星期的星期几(其中0表示星期日,6表示星期六)

getHours() 返回日期中的小时数(0到23)

getMinutes() 返回日期中的分钟数(0到59)

getSeconds() 返回日期中的秒数(0到59)

getMilliseconds() 返回日期中的毫秒数

set表示设置

4、RegExp类型

创建

1.var expression = /pattern/flags;

2.var expression2 = new RegExp("pattern","flags");

实例属性:

global :布尔值,表示是否设置了 g 标志。

ignoreCase :布尔值,表示是否设置了 i 标志。

lastIndex :整数,表示开始搜索下一个匹配项的字符位置,从 0 算起。

multiline :布尔值,表示是否设置了 m 标志。

source :正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回。

实例方法:

exec() 接受一个参数,即

要应用模式的字符串,然后返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回 null 。

test() 它接受一个字符串参数。在模式与该参数匹配的情况下返回true ;否则,返回 false

RegExp 构造函数属性

input 属性返回了原始字符串;

leftContext 属性返回了单词 short 之前的字符串,而 rightContext 属性则返回了 short

之后的字符串;

lastMatch 属性返回最近一次与整个正则表达式匹配的字符串,即 short ;

lastParen 属性返回最近一次匹配的捕获组,即例子中的 s 。

5、function类型

创建

1、function fn(){}

2、var fn = function(){};

3、var fn = new Function(); //不推荐

做为值的函数

//对象按照对应的属性排序

var arr =[{

'name': 'ccc',

'age': 12,

},{

'name': 'bbb',

'age': 8,

},

{

'name': 'aaa',

'age': 45,

}]

function compare(propertyName){

return function(obj1,obj2){

var value1 = obj1[propertyName];

var value2 = obj2[propertyName];

if(value1

return -1;

}else if(value1>value2){

return 1;

}else{

return 0;

}

}

}

var resulte = arr.sort(compare('name'));

console.log(resulte)

函数内部属性

this对象

arguments对象 -->arguments.callee代表函数指针

caller -->调用当前函数的函数的引用(arguments.callee.caller) //定义阶乘

//递归算法 arguments.callee(优先使用)) 等价于 factory

function factory(num){

var resulte = 0;

if(num<=1){

return 1;

}else{

return num * arguments.callee(num - 1);

}

}

console.log(factory(4));

函数的属性和方法

属性

length 表示函数希望接收的命名参数的个数

prototype 保存它们所有实例方法

方法

apply() --> 一个

是在其中运行函数的作用域,另一个是参数数组(arguments 或者 数组)

call() --> 另一个是参数需逐个列举出来

bind() --> 这个方法会创建一个函数的实例,其 this 值会被绑

定到传给 bind() 函数的值

6、基本包装类型

Boolean类型 -- 建议不要使用

Number类型

toFixed() -- 保留小数

toExponential() -- e 表示法

toPrecision() --以上两者结合

String类型

str.charAt(i) 等价于 str[i] -- 返回对应下标的字符

str.charCodeAt(i) --返回对应下标的字符编码

-----字符串操作方法-----

concat()

slice()、substr()、substring() --- 切割字符串方法,接收两个参数

第一个开始位置,第二个结束位置。只传一个参数默认到最后,substr第二个参数指返回字符的个数

如果有负数:slice()方法会将传入的负值与字符串的长度相加,----------------substr() 方法将负的第一个参数加上字符串的长度,而将负的第二个参数转换为 0,------------ substring() 方法会把所有负值参数都转换为 0

-----字符串位置方法-----

indexOf() 、lastIndexOf() ---查找字符,返回下标,没找到返回-1

都可以接收第二个参数,表示从字符串中的哪个位置开始搜索

trim() ---删除前置及后缀的所有空格

-----字符大小写转换方法-----

toLocaleUpperCase() 和 toUpperCase() ---转大写,前者针对地区

toLocaleLowerCase() 和 toLowerCase() ---转小写,前者针对地区

-----字符串的模式匹配方法-----

match() --- 只接收一个参数(正则表达式、regExp对象、字符串),返回一个符合匹配的数组,支持g,没找到返回null

search() ---只接收一个参数(正则表达式、regExp对象、字符串),返回一个第一次出现位置的下标,不支持g,没找到返回-1

replace() ---接收两个参数,第一个参数可以是一个 RegExp 对象或者一个字符串,第二个参数可以是一个字符串或者一个函数

//$& 匹配整个模式的子字符串

//$' 匹配的子字符串之前的子字符串

//$` 匹配的子字符串之后的子字符串

//$n 匹配第n个捕获组的子字符串,其中n等于0~9

//$nn 匹配第nn个捕获组的子字符串,其中nn等于01~99

var text = "cat, bat, sat, fat";

result = text.replace(/(.at)/g, "word ($1)");

alert(result); //word (cat), word (bat), word (sat), word (fat)

split() ---基于指定的分隔符将一个字符串分割成多个子字符串,并将结果放在一个数组中,接受可选的第二个参数,用于指定数组的大小

localeCompare() ---比较两个字符串 ,参数之前,返回-1,参数之后返回1,等于返回0

romCharCode() ---接收一或多个字符编码,然后将它们转换成一个字符串

alert(String.fromCharCode(104, 101, 108, 108, 111)); //"hello"

7、单体内置对象

Global 对象

URI编码方法

eval() 方法 ---可以执行放在字符串中的代码,简单理解就是去掉最外层的引号

Math 对象

Math对象属性:

2c916aa2e8e37c14e596f810847d90e3.png

min() max()方法

舍入方法:ceil()--向上取整 、floor()--向下取整、round()--四舍五入

random() ---返回大于等于 0 小于 1 的一个随机数

javascript //获得min~max之间随机数公式 Math.random()*(max - min) + min;

其他方法:

345127e389e287f89d95972daecf40b6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值