Javascript

第五章 引用类型(js高级程序设计)

2019-01-25  本文已影响0人  简默丶XS

Object类型

创建对象的方法

访问对象属性

Array类型

数组的构造方法

.length属性

检测数组

转换方法,数组转换字符串

栈方法(后进先出)

队列方法(先进先出)

重排序方法

以下是一个升序代码:
colors.sort((a,b)=>{
            if(a>b){
                return -1
            }else if(a<b){
                return 1
            }else{
                return 0
            }
        })
colors.sort(function(value1,value2){
            return value1 - value2
        })

操作方法

var list = ['a','b','c']
const newList = list.concat('d','e')
console.log(list)
console.log(newList)
concat
var list = ['a','b','c','d','e']
const newList = list.slice(1)
const newList2 = list.slice(1,4)
console.log(newList)
console.log(newList2)
slice
// splic删除元素
        var list = ['a','b','c','d','e','f','g']
        const newlist = list.splice(0,2)
        console.log(list)
        console.log(newlist)
splice删除
// splic插入元素
        var list = ['a','b','c','d','e','f','g']
        const newlist = list.splice(1,0,'王','后')
        console.log(list)
        console.log(newlist)
splice插入
// splice替换元素
        var list = ['a','b','c','d','e','f','g']
        const newlist = list.splice(1,3,'王','后')//bcd消失
        console.log(list)
        console.log(newlist)
splice替换

位置方法

        var list = [1,'2','a',1,'b']
        console.log(list.indexOf(1))
        console.log(list.indexOf('1'))
        //从下标2开始找1
        console.log(list.indexOf(1,2))
        console.log(list.lastIndexOf(1))
        console.log(list.lastIndexOf('1'))
查找

迭代方法,遍历方法

        var arr = [1, 12, 32, 2, 3, 44, 120, 3, 5];
        
        var res1 = arr.every(function(item, index ,array){
            //有一项不满足条件,就会终止循环
            console.log(item)
            console.log(index)
            console.log(array)
            return item > 20;
        });
        console.log(res1); // false
        
        var res2 = arr.some(function(item, index ,array){
            //有一项满足了条件,就终止循环
            return item > 20;
        });
        console.log(res2); // true
every和some
        var arr = [1, 12, 32, 2, 3, 44, 120, 3, 5];
        
        var res1 = arr.filter(function(item, index, array){
            return item > 20
        })
        
        console.log(res1)
filter
        var arr = [1, 12, 32, 2, 3, 44, 120, 3, 5];
        
        var res4 = arr.map(function(item, index, array){
          return item > 20;
        });
        console.log(res4); // false,false,true,false,false,true,true,false,false
        
        var res5 = arr.map(function(item, index, array){
          return item * 2;
        });
        console.log(res5); // 2,24,64,4,6,88,240,6,10
        var arr = [1, 12, 32, 2, 3, 44, 120, 3, 5];
        
        var res7 = arr.forEach(function(item, index, array){
            //执行你想要的操作
            console.log(item)
        });
        console.log(res7); // undefined

归并方法

        var arr = [1, 3, 2, 2, 3, 44, 120, 3, 5];
        
        var res6 = arr.reduce(function(prev, cur){
            //第一次prev是4,然后是6,然后是8...
            return prev+ cur;
        });
        console.log(res6); //183 即为合

Date类型

例1:
var someDate = new Date(Date.parse("2019-12-2 12:24"));
例2:
// GMT 时间 2005 年 5 月 5 日下午 5:55:55 
var allFives = new Date(Date.UTC(2005, 4, 5, 17, 55, 55));
例3:
// 本地时间 2005 年 5 月 5 日下午 5:55:55 
var allFives = new Date(2005, 4, 5, 17, 55, 55); 
data.parse
//取得开始时间
var start = Date.now(); 
//调用函数
doSomething(); 
//取得停止时间
var stop = Date.now(), 
 result = stop – start; 

*时间的比较:时间对象在进行比较时,会先调用valueOf()转换成毫秒数比较,所以日期靠后的毫秒数越大,值越大

        var time = new Date()
        setTimeout(()=>{
            var time2 = new Date()
            alert(time2 > time) //true
        },3000)

日期格式化

  1. toDateString()——以特定于实现的格式显示星期几、月、日和年; 【Tue Jan 29 2019】
  2. toTimeString()——以特定于实现的格式显示时、分、秒和时区;【11:41:58 GMT+0800 (中国标准时间)】
  3. toLocaleDateString()——以特定于地区的格式显示星期几、月、日和年; 【2019/1/29】
  4. toLocaleTimeString()——以特定于实现的格式显示时、分、秒; 【上午11:41:58】
  5. toUTCString()——以特定于实现的格式完整的 UTC 日期。【Tue, 29 Jan 2019 03:41:58 GMT】

日期时间组件方法

Function类型

function sum (num1, num2) { 
 return num1 + num2; 
} ;

var sum = function(num1, num2){ 
 return num1 + num2; 
}; 

构造器创建函数:

注:除了最后一个属性是函数体,其他都是函数的参数
var sum =new Function("num1" , "num2" , "return num1+num2")
function sum (num1, num2) { 
 return num1 + num2; 
} ;
const sum2 = sum;
sum = null;// 断绝关系
sum2(1,2)//3 不影响 
function sum1(){
  alert(1)
}
sum1=function(){ //sum1的指向被修改,故弹窗2
  alert(2)
}

基本包装类型

为什么基本类型(例如string)能像对象一样调用substring()方法?

  1. 创建String类型的一个实例
  2. 在实例上调用指定的方法
  3. 销毁这个实例


    string包装

slice,substring,substr都不会改变原字符串
slice(a,b) 截取从a到b(如果是负数倒着数)
substring(a,b) 截取从a到b(如果是负数返回全部)
substr(a,n) 从a开始截取n个

indexOf('o') 返回o首次出现的位置
indexOf('o',6) 从下标6开始找o的位置
lastIndexOf('o',6) 反向操作

trim() 去掉开头和末尾的空格
toUpperCase() 转大写
toLowerCase() 转小写

match() 正则查找方法,传入正则表达式,或者RegExp对象
search() 正则查找方法

replace(’a‘,'b') 替换字符串,将第一次出现的a替换成b
replace(/a/g,'b') 支持正则,将所有的a替换成b

str.split(',') 将字符串分割成数组
array.join('|') 将数组组成字符串

a.localeCompare(b) 比较a字符串和b字符串出现在字母表的位置,返回值为1 0 -1
fromCharCode(104,101) 将编码值转换为字符串,charCodeAt()的方向操作

单体内置对象

global对象

eval("alert(1)") 《==等于==》 alert(1)

eval注意点

Math对象
为保存数学公式和信息提供了一个公共位置

Math的属性说明 一组数中的最大值最小值 利用max求数组中的最大值 获得数字之间的一个随机数方法 Math的其他方法
上一篇 下一篇

猜你喜欢

热点阅读