内置对象:
* Math
* Date
* String
* Array
* Object
Date
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Date</title>
<script>
//创建实例对象
var dt=new Date();
//当前的时间---当前的服务器
console.log(dt);
var dt1=new Date("2017-08-12");
//传入的时间
console.log(dt1);
var dt2=new Date("2017/08/12");
//传入的时间
console.log(dt2);
//获取时间的对象
var dt2=Date.now();
console.log(dt2);//毫秒
console.log("--------");
var dt3 = new Date();
//获取年份
console.log(dt3.getFullYear());
//获取月份
console.log(dt3.getMonth()+1);//是0开始的 真实的月份是需要加1的
//获取日期
console.log(dt3.getDate());
//获取小时
console.log(dt3.getHours());
//获取分钟
console.log(dt3.getMinutes());
//获取秒
console.log(dt3.getSeconds());
//获取星期
console.log(dt.getDay());//星期从0开始的
console.log("--------");
var dt4=new Date();
console.log(dt4.toDateString());//英文的
console.log(dt4.toLocaleDateString());//数字格式
console.log(dt4.toTimeString());//小时分钟秒
console.log(dt4.toLocaleTimeString());//小时分钟秒
console.log(dt4.valueOf());//毫秒值
console.log(dt4);
//转成字符串
console.log(dt4.toString());
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Date</title>
<script>
//var dt=new Date();
var dt=+new Date();//一种特殊的写法,只适用于这个Date的对象
console.log(dt);//1590033461313,毫秒值
</script>
</head>
<body>
</body>
</html>
String
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>String对象</title>
<script>
/*
* 字符串可以看成是字符组成的数组,但是js中没有字符类型
* 字符是一个一个的,在别的语言中字符用一对单引号括起来
* 在js中字符串可以使用单引号也可以使用双引号
* 因为字符串可以看成是数组,所以,可以通过for循环进行遍历
*
* 字符串特性:不可变性,字符串的值是不能改变
*
* 字符串的值之所以看起来是改变的,那是因为指向改变了,并不是真的值改变了
*
* */
var str1="123";
str1="456";
console.log(str1);//456
var str2="hello";
str2[1]="W";
console.log(str2);//hello
for(var i=0;i<str2.length;i++){
console.log(str2[i]);//hello
}
var str3="1";
str3="2";
console.log(str3);//2
str3="3";
console.log(str3);//3
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>String</title>
<script>
//简繁体转换
var arr = ["你=伱", "说=詤", "我=莪", "好=恏", "杨=楊"];
//做一个字典:键和值的关系 键:简体的中文,值:对应的繁体中文
var obj={};
//遍历数组获取数组中每一个字符串内容
for (var i = 0; i < arr.length; i++) {
//console.log(arr[i]);//你=伱
var keyWords=arr[i].split("=");//keyWords-->是数组["好","恏"]
//keyWords[0]---键 keyWords[1]---值
obj[keyWords[0]]=keyWords[1];
//console.log(keyWords);
}
var result="";//把简体对应的所有的繁体字保存起来
//提示用户输入中文
var str=prompt("请输入中文");
//遍历用户输入的字符串
for(var i=0;i<str.length;i++){
//判断用户输入的每个字在键值对中是否存在
if(obj[str[i]]){
//有这个简体字对应的繁体字的
result+=obj[str[i]];
}else{
//没有文字对应的繁体字,原字输出
result+=str[i];
}
}
console.log(result);
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>String</title>
<script>
var obj={
"abandonment":"n.放弃",
"abbreviation" :"n.缩写",
"abeyance" :"n.缓办,中止",
"abide" :"v.遵守",
"ability" :"n.能力",
"able" :"adj.有能力的,能干的",
"abnormal": "adj.反常的,变态的",
"aboard": "adv.船(车)上",
"abolish" :"v.废除,取消",
"abolition" :"n.废除,取消"
};
var str=prompt("请输入单词");
if(obj[str]){
console.log(obj[str]);
}else{
console.log("不存在");
}
</script>
</head>
<body>
</body>
</html>
实例方法---->必须要通过new的方式创建的对象(实例对象)来调用的方法
静态方法---->直接通过大写的构造函数的名字调用的方法(直接通过大写的对象名字调用的)
字符串的常用属性:
- .length------>字符串的长度
- .charAt(索引),返回值是指定索引位置的字符串,超出索引,结果是空字符串
- .fromCharCode(数字值,可以是多个参数),返回的是ASCII码对应的值
- .concat(字符串1,字符串2,...);返回的是拼接之后的新的字符串
- .indexOf(要找的字符串,从某个位置开始的索引);返回的是这个字符串的索引值,没找到则返回-1
- .lastIndexOf(要找的字符串);从后向前找,但是索引仍然是从左向右的方式,找不到则返回-1
- .replace("原来的字符串","新的字符串");用来替换字符串的
- .slice(开始的索引,结束的索引); 从索引5的位置开始提取,到索引为10的前一个结束,没有10,并返回这个提取后的字符串
- .split("要干掉的字符串",切割后留下的个数);切割字符串
- .substr(开始的位置,个数);返回的是截取后的新的字符串
- .substring(开始的索引,结束的索引),返回截取后的字符串,不包含结束的索引的字符串
- .toLocaleLowerCase();转小写
- .toLowerCase();转小写
- .toLocaleUpperCase()转大写
- .toUpperCase();转大写
- .trim();干掉字符串两端的空格
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script>
var str="12345";
console.log(str.length);//5
var str1="whatare";
var result=str1.charAt(5);//r
console.log(result);
var str3=String.fromCharCode(83,79,83);
console.log(str3);//SOS
var str4="就恢复可少年开发的快捷方式";
var index=str4.indexOf("少",4);
console.log(index);//4
var str5="helo man";
var index=str5.lastIndexOf("Y");
console.log(index);//-1
var str6="就恢复可少年开发的快捷方式";
if(str6.indexOf("的")!=-1){
str6=str6.replace("的","地");
}else{
console.log("不存在");
}
console.log(str6);//就恢复可少年开发地快捷方式
var str7 = "如果有一天我邪恶了,请记住,我曾纯洁过";
//从索引5的位置开始提取,到索引为10的前一个结束,没有10,并返回这个提取后的字符串
str7 = str7.slice(5, 10);
console.log(str7);//我邪恶了,
var str8="dsd,sd,sd,scroll";
var arr8=str8.split(",");
for(var i=0;i<arr8.length;i++){
console.log(arr8[i]);
}
var str9="01234567890";
str9=str9.substr(5,5);
console.log(str9);56789
var str10="01234567890";
str10=str10.substring(5,9);
console.log(str10);//5678
var str11="HELLO";
str11=str11.toLocaleLowerCase();
console.log(str11);//hello
var str12="HELLO";
str12=str12.toLowerCase();
console.log(str12);//hello
var str13="hello";
str13=str13.toLocaleUpperCase();
console.log(str13);//HELLO
var str14="hello";
str14=str14.toUpperCase();
console.log(str14);//HELLO
var str15=" 又 是一天 ";
str15=str15.trim();
console.log("===="+str15+"====");//====又 是一天====
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script>
var str = "三个地方第三个归属感沙沙果实";
var key = "地方";
//先获取要截取的字符串的索引的位置
var index = str.indexOf(key);
//从指定的位置开始截取,截取两个即可
str = str.substr(index, 2);
console.log(str);
//案例2:找到这个字符串中所有的 o 出现的位置
var str2 = "hello wod odd ott fbo nhyo";
var index2 = 0;//开始的位置
var key2 = "o";//要找的字符串
while ((index2 = str2.indexOf(key2, index2)) != -1) {//如果是-1情况,说明找完了
console.log(index2);
index2 += key2.length;
}
//4 7 10 14 20 25
//案例3:找到这个字符串中每个字符串出现了多少次
var str3 = "whatOareYyouYnoYshaHleiHoHmyHgod";
//第一步:把所有的字母全部变成小写
str3 = str3.toLocaleLowerCase();
//第二步:创建一个空对象,目的:把字母作为键,次数作为值
var obj = {};
//第三步,遍历字符串,获取每个字母
for (var i = 0; i < str3.length; i++) {
//判断obj这个对象中有没有这个字母(字母---键)
var key3 = str3[i];//每个字母
if (obj[key3]) {//判断obj中有没有这个键
//对象中有这个字母了
obj[key3]++;
} else {
//对象中没有这个字母,那就把字母加到对象中,并且给这个字母一个出现的次数,默认1次
obj[key3] = 1;
}
}
//遍历对象,显示每个字母的次数
for(var key3 in obj){
console.log(key3+"出现了"+obj[key3]+"次");
}
// var obj={
// "sex":"男"
// };
//我想知道这个obj对象中有没有sex这个属性
//把对象["属性名字"]--->放在if的判断中即可----判断对象中有没有这个属性
//if的判断的结果是true,则有这个属性,否则没有这个属性
// if(obj["age"]){
// console.log("有");
// }else{
// console.log("没有");
// }
</script>
</head>
<body>
</body>
</html>
Array
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Array</title>
<script src="common.js"></script>
<script>
/*
* Array.isArray(对象)---->判断这个对象是不是数组
* instanceof关键字
* .concat(数组,数组,数组,...) 组合一个新的数组
* .every(函数)--返回值是布尔类型,函数作为参数使用,函数中有三个参数,第一个参数是元素的值,第二个参数是索引值,第三个参数是原来的数组(没用)
* 如果这个数组中的每个元素的值都符合条件,最后才返回的是true
*
* .filter(函数);返回的是数组中每一个元素都复合条件的元素,组成了一个新的数组
*
* .push(值);--->把值追加到数组中,加到最后了---返回值也是追加数据之后的数组长度
* .pop();--->删除数组中最后一个元素,返回值就是删除的这个值
* .shift();--->删除数组中第一个元素,返回值就是删除的这个值
* .unshift();--->向数组的第一个元素前面插入一个新的元素,----返回值是插入后的程度
* .forEach(函数)方法---遍历数组用---相当于for循环
* .indexOf(元素值);返回的是索引,没有则是-1
* .join("字符串");----返回的是一个字符串
* .map(函数);--->数组中的每个元素都要执行这个函数,把执行后的结果重新的全部的放在一个新的数组中
* .reverse();----->反转数组
* .sort();---排序的,可能不稳定,如果不稳定,请写MDN中的那个固定的代码
* .arr.slice(开始的索引,结束的索引);把截取的数组的值放在一个新的数组中,但是不包含结束的索引对应的元素值
* .splice(开始的位置,要删除的个数,替换的元素的值);一般是用于删除数组中的元素,或者是替换元素,或者是插入元素
*
* */
//构造函数
var arr1=new Array();
//字面量的方式
var arr2=[];
//对象是不是数组类型:两种
//1 instanceof
var obj=[];
console.log(obj instanceof Array);//true
//2 使用数组的
console.log(Array.isArray(obj));//true
var arr3=["a","b","c"];
var newArr3=Array.from(arr3);
console.log(newArr3);//["a","b","c"]
var arr4=[10,20,30];
var arr5=[40,50,60];
console.log(arr4.concat(arr5));//[10, 20, 30, 40, 50, 60]
var arr6=[1000,2000,3000];
//a----: 元素的值
//b----: 索引的值
//c----:谁调用了这个方法,那么c就是谁---->arr
var flag= arr6.every(function (a,b,c) {
console.log(a+"==="+b+"==="+c);//1000===0===1000,2000,3000 1000>2000,false,结束循环
return a>2000;//数组中的每个元素的值都要大于2000的情况,最后才返回true
});
var arr7=["lkko","674","bd","a"];
var flag7=arr7.every(function (ele,index) {
//数组中的每个元素的长度是不是大于4
return ele.length>4;
});
console.log(flag7);//false
var arr8=[30,40,50,60];
var newArr=arr8.filter(function (ele) {//ele---每个元素
return ele>40;
});
console.log(newArr);// [50, 60]
var arr9=[10,20,30];
var result9=arr9.unshift(100);
console.log(result9);//4
console.log(arr9);//[100, 10, 20, 30]
var arr10 = [10, 20, 30, 40];
arr10.forEach(function (ele,index) {
console.log(ele+'===='+index);
});
var arr11=[10,20,30,40];
var index=arr11.indexOf(30);
console.log(index);//2
var arr12=["小白","小黑","小红"];
var str12=arr12.join("|");
console.log(str12);//小白|小黑|小红
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
console.log(roots);// [1, 2, 3]
var arr13=[10,20,30];
arr13.reverse();//反转
console.log(arr13);
var arr14=[1,40,20,10];
//a---arr[j]
//b---arr[j+1]
arr14.sort(function (a,b) {//排序
if(a>b){
return 1;
}else if(a==b){
return 0;
}else{
return -1;
}
});
console.log(arr14);
var arr15=[10,20,30,40,50,60];
var newArr15= arr15.slice(2,5);
console.log(newArr15);//[30, 40, 50]
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
myFish.splice(2, 0, 'drum'); // 在索引为2的位置插入'drum'
//myFish 变为 ["angel", "clown", "drum", "mandarin", "sturgeon"]
myFish.splice(2, 1); // 从索引为2的位置删除一项(也就是'drum'这一项)
console.log(myFish);
//myFish 变为 ["angel", "clown", "mandarin", "sturgeon"]
</script>
</head>
<body>
</body>
</html>
common.js
/**
* Created by Administrator on 2017-09-13.
*/
//格式化后的指定格式的日期和时间---封装一个函数
/**
* 获取指定格式的时间
* @param dt 日期的对象
* @returns {string} 返回的是字符串的日期时间
*/
function getDate(dt) {
//获取年
var year = dt.getFullYear();
//获取月
var month = dt.getMonth() + 1;
//获取日
var day = dt.getDate();
//获取小时
var hour = dt.getHours();
//获取分钟
var minute = dt.getMinutes();
//获取秒
var second = dt.getSeconds();
month = month < 10 ? "0" + month : month;
day = day < 10 ? "0" + day : day;
hour = hour < 10 ? "0" + hour : hour;
minute = minute < 10 ? "0" + minute : minute;
second = second < 10 ? "0" + second : second;
return year + "年" + month + "月" + day + "日 " + hour + ":" + minute + ":" + second;
}
// Production steps of ECMA-262, Edition 5, 15.4.4.18
// Reference: http://es5.github.io/#x15.4.4.18
if (!Array.prototype.forEach) {
Array.prototype.forEach = function(callback, thisArg) {
var T, k;
if (this == null) {
throw new TypeError(' this is null or not defined');
}
// 1. Let O be the result of calling toObject() passing the
// |this| value as the argument.
var O = Object(this);
// 2. Let lenValue be the result of calling the Get() internal
// method of O with the argument "length".
// 3. Let len be toUint32(lenValue).
var len = O.length >>> 0;
// 4. If isCallable(callback) is false, throw a TypeError exception.
// See: http://es5.github.com/#x9.11
if (typeof callback !== "function") {
throw new TypeError(callback + ' is not a function');
}
// 5. If thisArg was supplied, let T be thisArg; else let
// T be undefined.
if (arguments.length > 1) {
T = thisArg;
}
// 6. Let k be 0
k = 0;
// 7. Repeat, while k < len
while (k < len) {
var kValue;
// a. Let Pk be ToString(k).
// This is implicit for LHS operands of the in operator
// b. Let kPresent be the result of calling the HasProperty
// internal method of O with argument Pk.
// This step can be combined with c
// c. If kPresent is true, then
if (k in O) {
// i. Let kValue be the result of calling the Get internal
// method of O with argument Pk.
kValue = O[k];
// ii. Call the Call internal method of callback with T as
// the this value and argument list containing kValue, k, and O.
callback.call(T, kValue, k, O);
}
// d. Increase k by 1.
k++;
}
// 8. return undefined
};
}
基本包装类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>基本包装类型</title>
<script>
//普通变量不能直接调用属性或者方法
//对象可以直接调用属性和方法
//基本包装类型:本身是基本类型,但是在执行代码的过程中,
//如果这种类型的变量调用了属性或者是方法,那么这种类型就不再是基本类型了,
//而是基本包装类型,这个变量也不是普通的变量了,而是基本包装类型对象
//string number boolean
var str="hello";
str=str.replace("ll","HH");
console.log(str);//heHHo
var num=10;//number
console.log(num.toString());//10
//如果是一个对象&&true,那么结果是true
//如果是一个true&&对象,那么结果是对象
var flag=new Boolean(false);
var result=true&&flag;
console.log(result);//Boolean{false}
//var result=flag&&true;//true
var num=10;
var num2=Number("10");//转换,没有new---类型转
console.log(num2);//10
var num3=new Number("10");//基本包装类型
console.log(num3);//Number{10}
</script>
</head>
<body>
</body>
</html>