数组的定义

var arr = [ ]

这个一个空数组,定义带数据的数组:

var arr =[ '张三','李四','王五','赵六']

数组中数据类型没有限制,在实际项目中,数组中通常会存储同一类型的数据

第一个下标永远都是0,最后一个下标永远是值的个数-1

构造函数创建数组 (new Array)

var arr = new Array("张三","李四","王五")

 var arr = [ 5 ] //定义一个数组有一个小空间,其中的值是5;

var brr = new Array( 5 ) //构造函数定义方式的表示有5个空的小空间。

console.log(arr, brr);

数组基本操作

数组中值的个数:数组.length

var arr = ['张三',"李四","王五","赵六"];
var arr1 = [1,2,3,4,5,6];
console.log(arr.length); // 4
console.log(arr1.length); // 6

访问数组中的元素:数组[下标]

var arr = ["张三","李四","王五"];
console.log(arr[1]); // 李四

第一个值永远都是:数组【0】;最后一个值永远是:数组【数组.length-1】

添加元素:数组【下标】=值

var arr =["张三","李四"];

arr [2] = "王五";

console.log(arr); // (3) ["张三", "李四", "王五"]
arr[10] = "赵六";
console.log(arr); // (11) ["张三", "李四", "王五", empty × 7, "赵六"] 中间还有7个空元素

修改元素:数组【下标】=值

var arr = ["张三","李四"];
arr[0] = "王五";
console.log(arr);
// (2) ["王五", "李四"]

删除元素: delete 数组【下标】

这种删除方式,只能删除值,并不能删除小空间。

var arr = [1,2,3];
delete arr[0];
console.log(arr) //[ empty , 2 , 3]

 数组长度的赋值:

var arr =[1,2,3];

arr.length = 0;

console.log(arr) //[ ]

var arr =[1,2,3]

arr.length =10;

cosole.log[arr]; //[ 1 , 2 , 3 , empty × 7 ]

var arr = [1,2,3];
arr.length = 1;
console.log(arr) // [1]

遍历数组

如果要将数组中的所有元素都输出,

var arr = ["张三","李四","王五","赵六"];
console.log(arr[0]); // 张三
console.log(arr[1]); // 李四
console.log(arr[2]); // 王五
console.log(arr[3]); // 赵六

 使用循环进行上面代码输出

var arr = ["张三","李四","王五","赵六"];
var length = arr.length;
for(var i=0;i<length;i++){ 
    console.log(arr[i]);
}

遍历对象的for in 语法也可以遍历数组:

var arr = ["张三","李四","王五","赵六"];
for(var i in arr){ 
    console.log(arr[i]);
}

两种遍历方式有区别:

for in遍历:空的空间不会被遍历,下标是字符串。

使用.lenght遍历:空的空间会遍历出undefined,下标是数字。

下标是字符串。所以for in的语法更适合遍历对象,为了避免不必要的错误,尽量不要用这种语法来遍历数组。

数组嵌套

var arr = [
        "Jack",
        "Rose",
        ["王宝强","马蓉"],
        ["贾乃亮","李小璐"]
    ];
    console.log(arr);
    console.log(arr[2]); //["王宝强","马蓉"]
    console.log(arr[2][1]); //马蓉

包含数组的数组,叫做多维数组,我们用的最多的就是二维数组。

var arr = [
    '王宝强',
    '贾乃亮',
    [
        '岳云鹏',
        '陈伟霆',
        '刘诗诗',
        [
            '刘德华',
            [
                '张艺兴',
                '周笔畅'
            ]
        ]
    ]
];
var brr = arr[2]
console.log(brr); // ['岳云鹏', '陈伟霆','刘诗诗',[ '刘德华',[ '张艺兴','周笔畅' ]]]

var crr = brr[3]
console.log(crr); // [ '刘德华',[ '张艺兴','周笔畅' ]]

var drr = crr[1]
console.log(drr); // [ '张艺兴','周笔畅' ]

var z = drr[1]
console.log(z); // 周笔畅

var zz = arr[2][3][1][1]
console.log(zz); // 周笔畅

基础类型和引用类型

js中允许出现的数据:number,string,boolean,null,undefined,{},[],function。根据不同类型的数据存储方式以及赋值方式的不同,我们将数据分为两类:基本类型和引用类型。

基础数据类型:number,string,boolean,undefined,null。

引用数据类型:[],function,{}。

基础类型和引用类型的区别:

1.存储方式不同

基础类型将值存在栈内存中;引用类型将值存在堆中,将堆内存的内存地址存在栈中。

var a =1;

var ojb ={name: "张三",age:12}

2.赋值过程不同

基础类型赋值时,将值复制给另一个变量;引用类型赋值时,将栈中的地址复制给别的变量。

var a =1

var b =a;

a =2;

console.log(b) //1

复制值以后,修改其中一个,另一个不会受到影响。

var arr = ['a','b','c'];
var brr = arr;
arr[0] = 'd'
console.log(brr) // ['d','b','c'];

当改变其中一个变量中的值,另一个变量中的值也会发生改变。

3.全等的比较规则不同。

基础类型全等比较的时候,比较类型和值。

var a = 1;
var b = 1;
console.log(a === b)//true

数组方法

如何给数组的开头添加一个元素?

var arr = ['a' , 'b' , 'c']

for(var i=arr.length-1;i>=0;i--){

     arr[i+1] = arr[ i ]

}

arr[ 0 ] ='d'

console.log(arr)//[ 'd , ''a' , 'b' , 'c']

上面方法过复杂,可以使用快速方法。

~unshift-给数组开头添加一个或者多个元素-返回数组长度

var arr = ['a','b','c'];
var l = arr.unshift('d')
console.log(arr) // ['d','a','b','c']
console.log(l)
// 4

~push-给数组的末尾添加一个或者多个元素-返回数组新长度 

var arr = ['a','b','c'];
var l = arr.push('d')
console.log(arr) // ['a','b','c','d']
console.log(l) // 4

~shift-删除数组的第一个元素-返回被删掉的元素

var arr = ['a','b','c'];
var ele = arr.shift()
console.log(arr) // ['b','c']
console.log(ele) // 'a'

~pop-删除数组最后一个元素-返回被删除的元素

  var arr = ['a','b','c'];
  var ele = arr.pop()
  console.log(arr) // ['a','b']
  console.log(ele) // 'c'

~splice-对数组做增删改的操作

var arr = ['a','b','c']
// 改 - 参数1:开始下标;参数2:删除的个数;参数3:在删除的位置放上的新的元素 - 可以是多个
arr.splice(1,1,'d') // ['a','d','c']
// 增
arr.splice(1,0,'d') // ['a','d','b','c'] - 删除0个,就是不删除,然后放上新元素
// 删 - 第三个参数可以省略
arr.splice(1,0) // ['a','c']

~concat-数组的拼接

var arr = ['a','b','c'];
var brr = ['d','e','f'];
// 将arr和brr合成一个更大的数组
var crr = arr.concat(brr) // ['a','b','c','d','e','f']
// 将一个或多个值和数组合并成一个大数组
var crr = arr.concat(1,2,3)// ['a','b','c',1,2,3]

~sort-数组的排序

var arr = [9,5,3,7,1,6,4,8,2];
arr.sort() // 默认升序
console.log(arr) // [1,2,3,4,5,6,7,8,9]
arr.sort(function(a,b){ // a代表前面的数,b代表后面的数
    return a-b; // 升序 - 如果前面的数-后面的数>0,则交换位置
    return b-a; // 降序 - 如果后面的数-前面的数>0,则交换位置
})

~reverse-数组的反转

var arr = ['a','b','c'];
arr.reverse()
console.log(arr) // ['c','b','a']

~slice-截取数组

var arr = ['a','b','c','d','e','f'];
// 将数组中的 'b','c','d'截取出来,组成新的数组
var brr = arr.slice(1,4) // 参数1是开始截取的下标,参数2是截取的结束下标,结果中不包含结束下标对应的元素
console.log(brr) // ['b','c','d']
// 如果省略第2个参数,默认从开始下标截取到数组末尾
var crr = arr.slice(1)
console.log(crr) // ['b','c','d','e','f']

冒泡排序

相邻两个元素进行比较,将一个数组中的数字使用循环进行升序或者降序的排列

var arr = [3,2,1]; // ---> [1,2,3]
// 相邻的元素比较,就是下标i的元素跟下标i+1的元素比较 - 所以循环要比正常的遍历少一次
for(var i=0;i<arr.length-1;i++){
    // 如果前面的元素比后面的元素大
    if(arr[i]>arr[i+1]){
        // 则交换位置
        var tmp = arr[i]
        arr[i] = arr[i+1]
        arr[i+1] = tmp
    }
}
// 这个循环结束后,arr变为:[2,1,3]
// 所以需要继续排列
for(var i=0;i<arr.length-1;i++){
    // 如果前面的元素比后面的元素大
    if(arr[i]>arr[i+1]){
        // 则交换位置
        var tmp = arr[i]
        arr[i] = arr[i+1]
        arr[i+1] = tmp
    }
}
// 这个循环结束后,arr变为:[1,2,3]
// 两个循环代码是重复的,所以用循环处理。3个元素循环两次,4个元素循环3次,所以循环重复的次数也是数组长度-1
for(var j=0;j<arr.length-1;j++){
    for(var i=0;i<arr.length;i++){
        if(arr[i]>arr[i+1]){
            var tmp = arr[i]
            arr[i] = arr[i+1]
            arr[i+1] = tmp
        }
    }
}
// 如果要降序排序,就将判断条件中的>改为<即可

选择排序

降序:先找最大值,排在最左边,在找第二大的值,往左边靠...,已经排好的,不在参与比较

var arr = [3,2,1]; // ---》 [1,2,3]
// arr[0]放最小的值,所以将arr[0]跟后面所有值比较,如果有比arr[0]更小的,就跟arr[0]交换位置
for(var i=1;i<arr.length;i++){
    if(arr[0]>arr[i]){
        var tmp = arr[0]
        arr[0] = arr[i]
        arr[i] = tmp
    }
}
// 此时的数组:[1,3,2]
// 第1个位置的数字排好了,排第2个位置上的数字
// arr[1]放剩下的数字中最小的,使用arr[1]跟后面的数字比较,如果有比arr[1]更小的,就跟arr[1]交换位置
for(var i=2;i<arr.length;i++){
    if(arr[1]>arr[i]){
        var tmp = arr[1]
        arr[1] = arr[i]
        arr[i] = tmp
    }
}
// 此时的数组:[1,2,3]
// 重复代码用循环处理,3个数排2次,4个数排3次
for(var j=0;j<arr.length-1;j++){
    for(var i=j+1;i<arr.length;i++){
        if(arr[j]>arr[i]){
            var tmp = arr[j]
            arr[j] = arr[i] 
            arr[i] = tmp
        }
    }
}
// 如果要进行降序排列,就将判断条件中的>换成<即可

ES5语法

严格模式

由于js的作用域和隐式声明变量等语法会造成很多预想不到的错误,所有ES5中心增了一个严格模式的语法,用于严格规范代码的书写。

使用语法

"use strict";

使用说明;

1,不允许隐式声明变量

2,禁止函数中的形参重名

3,禁止函数中的this代表window

为什么要使用严格模式?

1,可以使代码更加规范

2,可以让代码运行速度更快,提高运行效率

严格模式的好处

(1)通过它们可以来消除一些JavaScript中的无声错误

(2)修复了JavaScript引擎难以执行优化的错误。

(3)禁止使用可能在ECMAScript的未来版本中定义的潜在保留字。

(4)当采取相对“不安全”操作时,它可以防止或抛出错误。

新增数组方法

indexOf方法

查找某个元素在数组中第一次出现的位置

语法:

arr.indexOf(元素,[开始查找的起始下标]);
# 参数1:将要查找的元素
# 参数2:可选项。从哪个下标开始往后查找
# 返回值:如果找到了,就返回这个元素在数组中的下标,如果没有找到,就返回-1

var arr = [1,3,5,7,7,5,3,1];
console.log(arr.indexOf(5)); // 2 - 查找数字5在数组中第一次出现的下标
console.log(arr.lastIndexOf(5)); // 5 - 查找数字5在数组中最后一次出现的位置
console.log(arr.indexOf(5,3)); // 5 - 从下标3开始查找数字5在数组中第一次出现的位置
console.log(arr.lastIndexOf(5,4)); // 2 - 从下标4开始查找数字5在数组最后一次出现的下标
console.log(arr.indexOf("5")); // -1 - 数组中全是数字,找不到字符串5,所以返回-1

forEach方法

用于遍历数组

语法

arr.forEach(function(值, 下标, 当前数组){
    // 代码段
});
# 在这个方法中需要传入一个函数参数,这个函数的参数说明如下:
# 参数1:数组遍历出来的每个值
# 参数2:可选项。数组遍历出来的每个值对应的下标
# 参数3:可选项。被遍历的当前数组

 var arr = [1, 2, 3, 4, 5];
arr.forEach(function(x, index, a){
    console.log(x + '|' + index + '|' + (a === arr));
});
// 输出为:
// 1|0|true
// 2|1|true
// 3|2|true
// 4|3|true
// 5|4|true

使用说明

这个方法没有返回值,返回值为undefined,不会改变原来数组的值。

map方法

遍历数组,并将每个元素经过函数处理后,形成新的元素,所有新元素组成新数组返回

语法;

arr.map(function(值,下标,当前数组){

 var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item){
    return item*item;
});
console.log(arr2); //[1, 4, 9, 16, 25]

使用说明;

这个方法主要用于以同样的规则处理数组中的每个值,并组成新的数组返回

filter方法

将数组中满足指定条件的值,组成新的数字返回

语法;

arr.filter(function(值, 下标, 当前数组){
    return 筛选条件
});

 var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter(function(v, index) {
    return v>5
}); 
console.log(arr2); //[6, 7, 8, 9, 10]

使用说明;

使用方法和功能跟map方法很像,只是运行规则不一样。map方法中的函数,用于返回新的元素,而filter方法中的函数,根据返回true或false来筛选元素

字符串

字符串的认识

字符串的定义:

var str = '';
var str = "";
var str = new String()

这三种定义方式没有区别。

字符串中字符的个数: 字符串.length

字符串中获取某个字符的时候,可以根据下标来获取:

var str = "abcdef";
var s = str[1]
console.log(s) // 'b'
var s1 = str[0] 
console.log(s1) // 'a'

字符串也是可以遍历的

var str = "abcdef";
for(var i=0;i<str.length;i++){
    console.log(str[i],i)
}

字符串不能像数组一样,通过下标更改其中的某个字符。

var str = 'abcdef';
str[str.length] = 'g'

str[0] = 'g'
console.log(str) // abcdef

因为字符串是只读数据,只能读,不能增删改。

字符串可以进行比较,但是规则不一样是根据阿斯克码来决定的。

 console.log('12'>'5') // false
console.log('12'<'5') // true

阿斯克码

计算机内部只能识别2进制数据,不能识别字母等字符。

为了让计算机识别字符,科学家制定了一个对照表,当输入一段2进制指令的时候,就能显示某个字符。这个对照表叫做阿斯克码表,其中包含了128个常用字符跟2进制的对照关系。

通过阿斯克码表,我们可以得出一些字符串比较的规律:

1,字母比数字大

2,小写字母比大写字母大

3,字母越靠后越大

字符串能比较大小,中文汉字也是字符串,也能比较大小:

console.log('我'>'你') // true
console.log('你'>'我') // false

中文汉字的大小由unicode来决定。

阿斯克码总共128个,包含符号、大小写英文字母、数字。阿斯克码是由美国人创建的,所以对于英文的支持非常好。后来随着计算机的普及,各个国家在使用计算机的时候,没办法使用本国文字,这样用起来非常困难。所以众多国家的科学家一起制定了一个更大的对照表,包含各个国家的文字符号,所以称之为万国码,也叫作unicode。

其实unicode就是更大的阿斯克码。

字符串的方法

~charCodeAt-根据指定下标获取对应的字符的阿斯克码

var str = 'abcdef';
// 获取下标为3的字符的阿斯克码
var res = str.charCodeAt(0); // 参数为指定的下标
console.log(res); // 97

~String.fromCharCode-根据指定的阿斯克码得到对应的字符

// 获取98对应的字符
var res = String.fromCharCode(98); // 参数为指定的阿斯克码
console.log(res); // b

~indexOf-查找字符或子字符串在大字符串中第一次出现的位置

var str = 'i love you';
// 找到o字符在str中第一次出现的位置
var s = str.indexOf('o'); // 参数为要查找的字符
console.log(s); // 3

var s = str.indexOf('o',4); // 参数2为开始查找的下标
console.log(s) // 8

var s = str.indexOf('a') // 查找a字符在字符串中第一次出现的下标
console.log(s) // -1 - 找不到就返回-1

~lastlndexOf-查找字符在字符串中最后一次出现的下标

var str = 'i love you';
// 找到o字符在str中最后一次出现的位置
var s = str.lastIndexOf('o');
console.log(s); // 8

var s = str.lastIndexOf('o',7) // 将下标7当做字符串末尾,查找字符o在字符串中最后一次出现的下标
console.log(s) // 3

var s = str.lastIndexOf('a')
console.log(s) // -1 - 找不到就返回-1

~slice-截取字符串

var str = 'abcdef';
// 从下标1截取到下标4
var s = str.slice(1,4) // 参数1是开始截取的下标,参数2是截取的结束下标
console.log(s) // bcd - 结果中不包含结束下标对应的字符

var s = str.slice(1) // 省略第二个参数,默认能截取到字符串末尾
console.log(s) // bcdef

var s = str.slice(-3,-1) // 下标可以使用负数表示,-3表示倒数第3个字符,-1表示倒数第1个字符
console.log(s) // def

var s = str.slice(-1,-3) // 如果开始下标比结束下标大,会截取到空
console.log(s) // ''

~split-将字符串使用指定的分隔符为数组

var str = 'a-b-c-d';
var arr = str.split('-') // 参数为分隔符,使用-将字符串分割为一个数组
console.log(arr) // ['a','b','c','d']

var arr = str.split('-',3) // 参数2表示数组中要保留前几个元素
console.log(arr) // ['a','b','c']

var str = 'abcd';
var arr = str.split() // 省略了分隔符,默认就不分割,将整个字符串当做一个元素放在数组中
console.log(arr) // ['abcd']

var arr = str.split('')
console.log(arr) // ["a", "b", "c", "d"]

~replace-使用新字符串将字符串中某一部分替换掉

var str = '你的头发还好吗?';
str = str.replace('头发','眉毛') // 参数1是被替换的字符串中的部分,参数2是新内容
console.log(str) // '你的眉毛还好吗?'

str = str.replace('','哈哈') // 参数1为空,就会将新内容添加到原字符串的最前面
console.log(str) // '哈哈你的眉毛还好吗?'

~trim-去除字符串两端空白

var str = '    aaa          ';
str = str.trim()
console.log(str) // 'aaa' - 左右两端的空白被去掉了

str = str.trimLeft() // 去除左边的空白
console.log(str) // 'aaa          '

str = str.trimRight() // 去除右边的空白
console.log(str) // '    aaa'

~toUpperCase-将字符串中字母转换为大写

var str = 'i love you';
str = str.toUpperCase()
console.log(str) // 'I LOVE YOU'

~toLowerCase-将字符串中字母转换为小写

var str = 'I LOVE YOU';
str = str.toLowerCase()
console.log(str) // 'i love you'

~substr-截取字符串

var str = 'abcdef';
str = str.substr(1,3) // 参数1是开始截取的下标,参数2是截取的字符串长度
console.log(str) // bcd

str = str.substr(1) // 省略参数2默认截取到字符串末尾
console.log(str) // bcdef

str = str.substr(-4,2) // 开始截取的下标可以用负数表示
console.log(str) // 'cd'

str = str.substr(1,20) // 长度超出最大下标,就相当于省略了参数2
console.log(str) // cdef

~substring-截取字符串

var str = 'abcdef'
str = str.substring(1,4) // 参数1是开始截取的下标,参数2是结束下标
console.log(str) // bcd - 结果不包含结束下标对应的字符

str = str.substring(1) // 省略参数2,默认截取到末尾
console.log(str) // bcdef

str = str.substring(1,1) // 开始下标和结束下标相等就截取到空字符串
console.log(str) // ''

str = str.substring(4,1) // 开始下标大于结束下标,就先交换两个参数位置,然后再截取
console.log(str) // 'bcd'

str = str.substring(-5,4) // 开始下标或结束下标是负数,就先替换为0,然后开始截取
console.log(str) // abcd

Math常用API

圆周率

Math.PI // 3.1415926535

生成随机数

Math.random()

生成的是0~1之间的随机小数,通常在实际项目中需要获取到一个范围内的随机整数,利用这个随机小数封装一个获取范围的随机整数的函数

function getRandom(a,b){
    var max = a;
    var min = b;
    if(a<b){
        max = b;
        min = a;
    }
    return parseInt(Math.random() * (max - min)) + min
}

~向上取整

向上取整的含义就是一个数字的小数部分不够1,将他处理成1.

Math.ceil(3.3) // 4

~向下取整

向下取整跟parseInt()是一个意思,只要整数部分,舍掉小数部分得到整数

Math.floor(3.9) // 3

~四舍五入

Math.round(3.3) // 3
Math.round(3.9) // 4

~求次方

Math.pow(2,3) // 2的3次方,参数1是底数,参数2是幂数

~绝对值

Math.abs(-6) // 6
Math.abs(6) // 6

~最大值

Math.max(9,5,1,3,4,8,2,6) // 9

~最小值

Math.max(9,5,1,3,4,8,2,6) // 1

~正弦

Math.sin(Math.PI*30/180) // 0.5

~ 余弦

Math.cos(Math.PI*60/180) // 0.5

~开根号

Math.sqrt(9) //3

进制的转换

10进制转其他进制:10进制数字.toString(进制数)

var  x = 110;
x.toString(2) // 转为2进制
x.toString(8) // 转为8进制
x.toString(16) // 转为16进制

其他进制转10进制:parseInt(数据,进制数)

var x = "110" // 这是一个二进制的字符串表示
parseInt(x, 2) // 把这个字符串当做二进制, 转为十进制

var x = "70" // 这是一个八进制的字符串表示
parseInt(x, 8) // 把这个字符串当做八进制, 转为十进制

var x = "ff" // 这是一个十六进制的字符串表示
parseInt(x, 16) // 把这个字符串当做十六进制, 转为十进制

时间日期处理

js提供了一个构造函数Date,用来创建时间日期对象。所以跟时间日期有关的操作都是通过时间日期来操作的。

时间日期对象创建

var date = new Date()
console.log(date) // Tue Jul 30 2019 21:26:56 GMT+0800 (中国标准时间)

创建好的是一个对象,但是当输出的时候被浏览器自动转为字符串输出了。获取到的是当前本地的时间日期对象。如果把本地日期改掉,获取到的时间日期对象会随着本地时间变化。

获取具体的时间日期

通过时间日期对象可以获取到具体的年月日时分秒,甚至毫秒和时间戳。

date.getFullYear(); // 获取到完整的时间日期对象中的年份
date.getMonth(); // 获取到时间日期对象中的月份 - 这里的月份是通过0~11来描述1~12月的
date.getDate(); // 获取到时间日期对象中的日
date.getDay(); // 获取时间日期对象中的星期几
date.getHours(); // 获取到时间日期对象中的时
date.getMinutes(); // 获取到时间日期对象中分
date.getSeconds(); // 获取到时间日期对象中的秒
date.getMilliseconds(); // 获取到时间日期对象中的毫秒 - 1秒=1000毫秒
date.getTime(); // 获取到时间日期对象对应的时间戳

时间戳,指的是,格林尼治时间1970年1月1日0点0分0秒到现在走过的毫秒数。利用时间戳可以方便计算时间,例如:计算100天以前是几月几号。

var date = new Date();
var year = date.getFullYear(); 
var month = date.getMonth()+1;
var d = date.getDate();
var day = date.getDay();
var hour = date.getHours(); 
var minute = date.getMinutes(); 
var second = date.getSeconds(); 
document.write("现在是北京时间:"+year+"年"+month+"月"+d+"日。星期"+day+"。"+hour+"时"+minute+"分"+second+"秒");

设置时间日期

通过时间对象,可以将其中的年月日时分秒进行设置,改变时间日期对象的时间。

 date.setFullYear(年份); // 设置时间日期对象中的年份
date.setMonth(当前月份-1); // 设置时间日期对象中的月份 - 这里的月份是通过0~11来描述1~12月的
date.setDate(日); // 设置时间日期对象中的日
date.setHours(时); // 设置时间日期对象中的时
date.setMinutes(分); // 设置时间日期对象中分
date.setSeconds(秒); // 设置时间日期对象中的秒
date.setMilliseconds(毫秒); // 设置时间日期对象中的毫秒
date.setTime(时间戳); // 设置时间日期对象对应的时间戳 - 直接用时间戳就能将时间日期对象中的年月日时分秒全部改变

星期几是不能设置的,是根据年月日生成的

创建指定的时间日期对象

我们可以在创建时间日期对象的时候就指定时间:

var date = new Date("年-月-日 时:分:秒") // 也可以是英文版的时间字符串 - Sun May 13,2016
var date = new Date(年,月-1,日,时,分,秒)
var date = new Date(时间戳)

日期格式化

date.toLocalString();//本地风格的日期格式
date.toLocaleDateString(); // 获取日期
date.toLocaleTimeString(); // 获取时间

时间戳的获取

格林威治时间/ 格林尼治时间

Date.parse("2015-08-24") // 获取1970年到设定时间的毫秒数
new Date().getTime()
+new Date();

两个指定的日期相差多少天

var date1=new Date(2010,10,3);
var date2=new Date(2017,9,24);
var day=(date2.getTime()-date1.getTime())/(1000*60*60*24);/*不用考虑闰年否*/
console.log("相差"+day+"天");

100天以后是哪年哪月哪日

var date = +new Date()
date += 100 * 24 * 3600 * 1000
var newDate = new Date(date)
var year = newDate.getFullYear()
var month = newDate.getMonth() + 1;
var d = newDate.getDate()
console.log('100天以后是'+year+'年'+month+'月'+d+'日')

数组,es5,字符串,Math和Date相关推荐

  1. JavaScript(四)——具体对象(Math、字符串对象、Date对象、Number对象及Boolean对象)

    文章目录 1.字符串对象 (1)转义字符 \ (2)API 2.Math对象 3.Date对象 (1)创建 (2)获取存储的日期时间 (3)转为本地字符串格式 (4)设置日期时间 (5)拷贝Date对 ...

  2. 数组、字符串对象、Math对象

    数组的介绍 数组介绍 概念: 就是将若干个数据以一定的顺序放在一起的一个集合体,整体上就称之为"数组".数组就是一列数据的有序排列的集合. 定义形式: var arr1 = new ...

  3. Js Array数组ES5/ES6常用方法

    Js Array数组ES5/ES6常用方法 1.栈方法(先进后出) push():在数组的最后一项后追加值(参数:可以为多个值或数组) 返回:数组的长度,改变了原数组. var a=[1,2,3] a ...

  4. 前端JS学习笔记——内置对象Math、Date 、Array、String

    目录 1.Math常用方法 2.Date()方法 如何获取Date的时间戳 Date()方法的使用 格式化日期时间 格式化输出一串时间日期 倒计时功能 3.Array方法 创建数组对象的两种方法 检测 ...

  5. JavaScript——内置对象(Math,Date)

    文章目录 内置对象 通过MDN/W3C来查询 验证变量是不是对象的方法 Math对象 案例:随机生成颜色RGB Date对象 案例 内置对象 JavaScript中的对象分为3种:内置对象.浏览器对象 ...

  6. java常用类(Object、String、Math、Date)

    文章目录 java常用类(Object.String.Math.Date) 一.object类及其方法 1. getClass()方法 2. hashCode()方法 3. toString方法 4. ...

  7. JS_06_数组_字符串_正则_常见对象

    JavaScript 对象 JavaScript 中的所有事物都是对象:字符串.(数值).数组.函数... 此外,JavaScript 允许自定义对象. 所有事物都是对象 JavaScript 提供多 ...

  8. c语言byte数组转化为字符串,数组转字符串

    2019-05-07 [属猪的今年多大]属猪八戒的歇后语 属猪八戒的歇后语答案-- 好吃懒做歇后语 2018-11-06 属猪的今年多大_属猪八戒的歇后语 属猪八戒的歇后语答案-- 好吃懒做歇后语 2 ...

  9. 数组和字符串的方法以及常用事件、函数this

    数组的方法 push 作用: 向数组的末尾增加一个成员 返回值: 数组的长度 注:会改变原数组 // 定义数组 var arr = ["张三", "李四", & ...

  10. js基础(数组)--数组类型、类数组对象、作为数组的字符串

    1.数组类型 我们到处都可以看见数组是具有特殊行为的对象.给定一个未知的对象,判定它是否为数组通常非常 有用.在ECMAScript 5中,可以使用Array.isArray()函数来做这件事情:Ar ...

最新文章

  1. 设置树莓派的无线网卡为监听模式(monitor)
  2. hue安装及基本测试-笔记
  3. 七天开发安卓软件(五)
  4. ue4导入倾斜摄影_干货 | 6款倾斜摄影裸眼3D采集软件推荐给大家
  5. 动态规划几种状态剪裁比较
  6. 基于海量日志和时序数据的质量建设最佳实践
  7. jQuery API 3.1.0 速查表-打印版
  8. java中事务的管理
  9. 亲测!这款耳机性价比堪比 AirPods
  10. 偶然遇到的Java泛型错误,百思不得其解。
  11. MySQL 有这一篇就够(呕心狂敲37k字,只为博君一点赞!!!)
  12. vue 开发App监听手机 返回键返回上级路由以及退出
  13. 读书202101『股票大作手回忆录』
  14. 数字转换英语c语言程序,C语言编写的英语数字转化代码(数字转化为用英语表达的数字).doc...
  15. Springboot中使用Robot及Websocket实现windows远程桌面控制
  16. 解决 Ubuntu 22.04 Fractional Scaling 画面伸缩后应用程序模糊
  17. 计算机价格谈判议程,谈判议程
  18. 摩托车闪光控制器专用芯片MST1172
  19. 棋盘放芝麻用for循环写出步骤
  20. 5g网络模式是以什么划分的_5G基础知识及试题

热门文章

  1. 树上取石子's 题解
  2. 怎么设置uboot从u盘启动linux,RT5350使用uboot从U盘启动linux顺利
  3. 问到的知识(蓝色板儿砖的教学)
  4. gitlab拉取项目报128 fatal: unable to access ‘xxx.git/‘
  5. 许永鑫 南京理工大学计算机学院,南京理工大学计算机科学与技术学院研究生导师简介-付安民...
  6. VMware esxcli定时开启虚拟机
  7. (转)工作是一种本能?
  8. Go关键字--var
  9. leaflet 实现左卷帘效果 (代码示例045)
  10. 计数器/定时器8253/8254