数组,es5,字符串,Math和Date
数组的定义
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); // 3var s = str.indexOf('o',4); // 参数2为开始查找的下标
console.log(s) // 8var 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); // 8var s = str.lastIndexOf('o',7) // 将下标7当做字符串末尾,查找字符o在字符串中最后一次出现的下标
console.log(s) // 3var 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) // bcdefvar s = str.slice(-3,-1) // 下标可以使用负数表示,-3表示倒数第3个字符,-1表示倒数第1个字符
console.log(s) // defvar 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) // bcdstr = str.substr(1) // 省略参数2默认截取到字符串末尾
console.log(str) // bcdefstr = 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) // bcdefstr = 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相关推荐
- JavaScript(四)——具体对象(Math、字符串对象、Date对象、Number对象及Boolean对象)
文章目录 1.字符串对象 (1)转义字符 \ (2)API 2.Math对象 3.Date对象 (1)创建 (2)获取存储的日期时间 (3)转为本地字符串格式 (4)设置日期时间 (5)拷贝Date对 ...
- 数组、字符串对象、Math对象
数组的介绍 数组介绍 概念: 就是将若干个数据以一定的顺序放在一起的一个集合体,整体上就称之为"数组".数组就是一列数据的有序排列的集合. 定义形式: var arr1 = new ...
- Js Array数组ES5/ES6常用方法
Js Array数组ES5/ES6常用方法 1.栈方法(先进后出) push():在数组的最后一项后追加值(参数:可以为多个值或数组) 返回:数组的长度,改变了原数组. var a=[1,2,3] a ...
- 前端JS学习笔记——内置对象Math、Date 、Array、String
目录 1.Math常用方法 2.Date()方法 如何获取Date的时间戳 Date()方法的使用 格式化日期时间 格式化输出一串时间日期 倒计时功能 3.Array方法 创建数组对象的两种方法 检测 ...
- JavaScript——内置对象(Math,Date)
文章目录 内置对象 通过MDN/W3C来查询 验证变量是不是对象的方法 Math对象 案例:随机生成颜色RGB Date对象 案例 内置对象 JavaScript中的对象分为3种:内置对象.浏览器对象 ...
- java常用类(Object、String、Math、Date)
文章目录 java常用类(Object.String.Math.Date) 一.object类及其方法 1. getClass()方法 2. hashCode()方法 3. toString方法 4. ...
- JS_06_数组_字符串_正则_常见对象
JavaScript 对象 JavaScript 中的所有事物都是对象:字符串.(数值).数组.函数... 此外,JavaScript 允许自定义对象. 所有事物都是对象 JavaScript 提供多 ...
- c语言byte数组转化为字符串,数组转字符串
2019-05-07 [属猪的今年多大]属猪八戒的歇后语 属猪八戒的歇后语答案-- 好吃懒做歇后语 2018-11-06 属猪的今年多大_属猪八戒的歇后语 属猪八戒的歇后语答案-- 好吃懒做歇后语 2 ...
- 数组和字符串的方法以及常用事件、函数this
数组的方法 push 作用: 向数组的末尾增加一个成员 返回值: 数组的长度 注:会改变原数组 // 定义数组 var arr = ["张三", "李四", & ...
- js基础(数组)--数组类型、类数组对象、作为数组的字符串
1.数组类型 我们到处都可以看见数组是具有特殊行为的对象.给定一个未知的对象,判定它是否为数组通常非常 有用.在ECMAScript 5中,可以使用Array.isArray()函数来做这件事情:Ar ...
最新文章
- 设置树莓派的无线网卡为监听模式(monitor)
- hue安装及基本测试-笔记
- 七天开发安卓软件(五)
- ue4导入倾斜摄影_干货 | 6款倾斜摄影裸眼3D采集软件推荐给大家
- 动态规划几种状态剪裁比较
- 基于海量日志和时序数据的质量建设最佳实践
- jQuery API 3.1.0 速查表-打印版
- java中事务的管理
- 亲测!这款耳机性价比堪比 AirPods
- 偶然遇到的Java泛型错误,百思不得其解。
- MySQL 有这一篇就够(呕心狂敲37k字,只为博君一点赞!!!)
- vue 开发App监听手机 返回键返回上级路由以及退出
- 读书202101『股票大作手回忆录』
- 数字转换英语c语言程序,C语言编写的英语数字转化代码(数字转化为用英语表达的数字).doc...
- Springboot中使用Robot及Websocket实现windows远程桌面控制
- 解决 Ubuntu 22.04 Fractional Scaling 画面伸缩后应用程序模糊
- 计算机价格谈判议程,谈判议程
- 摩托车闪光控制器专用芯片MST1172
- 棋盘放芝麻用for循环写出步骤
- 5g网络模式是以什么划分的_5G基础知识及试题
热门文章
- 树上取石子's 题解
- 怎么设置uboot从u盘启动linux,RT5350使用uboot从U盘启动linux顺利
- 问到的知识(蓝色板儿砖的教学)
- gitlab拉取项目报128 fatal: unable to access ‘xxx.git/‘
- 许永鑫 南京理工大学计算机学院,南京理工大学计算机科学与技术学院研究生导师简介-付安民...
- VMware esxcli定时开启虚拟机
- (转)工作是一种本能?
- Go关键字--var
- leaflet 实现左卷帘效果 (代码示例045)
- 计数器/定时器8253/8254