JavaScript基础笔记6

内置对象:
    * 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>

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什么都不懂的菜鸟玩家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值