zoukankan      html  css  js  c++  java
  • js-ECMAScript-5:常用的内置对象,数组,date,math,json,正则

    ###

    ####

    在 JavaScript 中,对象是王。如果您理解了对象,就理解了 JavaScript。

    ####

    数据类型,之前说了有6种,

    一共有6中数据类型,

    string,字符串,

    number,数字,

    Boolean,布尔,

    null,空值

    undefined,未定义,

    object,对象,

    前5种,是基本数据类型,

    object,是引用数据类型,

    ###

    今天讲解对象数据类型,这个可以保存多个不同的基础数据类型,就像一个袋子,放了很多的基础数据类型,

    ###

    对象有三种:

    console.log()

    document.write()

    这个console,还有document,就是宿主对象,是已经建立好的,

    ###

    今天学习一下,js中的内建对象,

    ###

    数组类型

    创建数组

    // 使用中括号创建一个数组:

    var cars = ["Saab", "Volvo", "BMW"];

    // 使用 JavaScript 关键词 new 创建一个数组:

    var cars = new Array("Saab", "Volvo", "BMW");

    // 没有必要使用 JavaScript 的内建数组构造器 new Array()。使用 [] 取而代之!工作中都使用[]这种方式,new 关键词只会使代码复杂化。它还会产生某些不可预期的结果。

    // 数组元素,您可以在数组中保存对象,保存函数。你甚至可以在数组中保存数组,

    访问数组

    //通过引用数组名来访问完整数组:

    var cars = ["Saab", "Volvo", "BMW"];

    cars

    // 通过索引下标访问数组

    var cars = ["Saab", "Volvo", "BMW"];

    cars[0]

    // a1[1:2] //不支持这种冒号的

    修改数组元素的值

    var cars = ["Saab", "Volvo", "BMW"];

    cars[0] = "Opel";

    删除元素

    var fruits = ["Banana", "Orange", "Apple", "Mango"];

    delete fruits[0];  

    数组属性和方法

    var fruits = ["Banana", "Orange", "Apple", "Mango"];

    fruits.length;  // 返回数组的长度

    fruits.toString(); // 转换成字符串:"Banana,Orange,Apple,Mango"

    fruits.join("*"); // 也是转换成为字符串,但是可以指定分隔符,"Banana*Orange*Apple*Mango"

    fruits.pop(); // 会返回并且删除掉最有一个元素,这个方法是有返回值的,就是返回了最后一个元素

    fruits.push("Kiwi");  // 这个是在数组末尾添加一个元素,这个方法也是有返回值的,是返回新的数组的长度,

    fruits.shift(); // 这个方法是删除第一个元素,也是有返回值的是返回第一个元素的值,

    fruits.unshift("Lemon");  // 方法返回新数组的长度。

    ###

    fruits.splice(0, 1);  // 第一个参数(0)定义新元素应该被添加(接入)的位置。第二个参数(1)定义应该删除多个元素。其余参数被省略。没有新元素将被添加。

    fruits.splice(0, 1,"123");  //  第三个参数是往里面添加元素,

    ###

    合并两个数组

    var myGirls = ["Cecilie", "Lone"];
    var myBoys = ["Emil", "Tobias", "Linus"];
    var myChildren = myGirls.concat(myBoys);  // ["Cecilie", "Lone", "Emil", "Tobias", "Linus"]

    合并三个数组

    var arr1 = ["Cecilie", "Lone"];
    var arr2 = ["Emil", "Tobias", "Linus"];
    var arr3 = ["Robin", "Morgan"];
    var myChildren = arr1.concat(arr2, arr3);

    数组与值合并

    var arr1 = ["Cecilie", "Lone"];
    var myChildren = arr1.concat(["Emil", "Tobias", "Linus"]);

    ###

    切片,

    var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
    var citrus = fruits.slice(3);  // 这是从下标3开始切出一个新的数组,

    var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
    var citrus = fruits.slice(1, 3); // 这个是从下标1开始,到下标3(不包括3),切出一个新的数组,

    ###

    数组排序

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits.sort(); //这是按照首字母排序

    fruits.reverse();         // 反转元素顺序

    数组遍历,数组迭代

    var fruits = ["Banana", "Orange", "Apple", "Mango"];

    for(i=0;i<fruits.length;i++){console.log(fruits[i])}

    ##

    使用forEach方法遍历,这个只是支持ie8以上的浏览器,这个方法用的不多,一般我们遍历都是用for,

    而且这个forEach,是需要传递一个函数进去,

    数组中有几个元素,这个函数就会执行几次,而且每次遍历都会把元素作为实参传递到函数中,

    第一个参数,是元素值,

    第二个参数,是元素的下标index,

    第三个参数,是整个数组,

    var fruits = ["Banana", "Orange", "Apple", "Mango"];

    fruits.forEach(function(a,b,c){console.log(a)})

    Date对象

     // 内置的Date对象,就相当于python中的模块

    创建date对象

    // Date 对象由新的 Date() 构造函数创建。new Date() 用当前日期和时间创建新的日期对象:

    var d = new Date();

    d; // Tue Aug 17 2021 10:42:09 GMT+0800 (中国标准时间)

    // new Date(year, month, ...) 用指定日期和时间创建新的日期对象。

    var d = new Date(2018, 11, 24, 10, 33, 30, 0);

    // 这个里面的参数,分别是年,月,日,时,分,秒,毫秒,7个,可以使用7个,也可以使用其中的前2个年月,或者前3个年月日,创建,如果只提供一个参数,则将其视为毫秒。

    date对象的常用方法

    var d1 = new Date();

    d1.toLocaleString(); // 2021/8/17 上午10:52:20

    //getDate() 获取日
    //getDay () 获取星期
    //getMonth () 获取月(0-11)
    //getFullYear () 获取完整年份
    //getHours () 获取小时
    //getMinutes () 获取分钟
    //getSeconds () 获取秒
    //getMilliseconds () 获取毫秒
    //getTime () 返回累计毫秒数(从1970/1/1午夜)

    math对象

    var n = -5;
    n2 = Math.abs(n); //绝对值
    console.log(n2);
    Math.floor(5.9); //直接往下去,这就是5,
    Math.min(1,2);
    Math.max(1,2);
    Math.pow(10,2); //返回x的y次幂
    Math.random(); //返回一个0-1之间的随机数
    Math.round(5.5); //四舍五入

    ###############    JS内置对象-json对象      ################

    //json对象
    var s = '{"name":"andy","age":12}'; //这是一个字符串,怎么使用js转换成为json格式的,
    var ret = JSON.parse(s);
    console.log(ret);
    console.log(typeof ret); //类型是一个对象
    
    // 怎么把js中的对象,转换成字符串呢?
    var s2 = JSON.stringify(ret);
    console.log(s2);
    console.log(typeof s2); //类型是一个字符串
    
    // 这两个一定要学会,后面使用ajax传递数据的时候,会使用到

    ###############    JS内置模块-RegExp模块,正则模块      ################

    //RegExp对象,正则,类似python中的re模块
    //生成RegExp对象,
    var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$");
    //这是以字母开头,5-11位的字母数字下滑线组成
    var reg2 = reg1.test('xiaoming');
    console.log(reg2); //true
    var reg3 = reg1.test('2xiaoming');
    console.log(reg3); //false
    
    //简单写法
    console.log(/^[a-zA-Z][a-zA-Z0-9_]{5,11}$/.test("xiaoming"));
    console.log(/^[a-zA-Z][a-zA-Z0-9_]{5,11}$/.test("3xiaoming"));
    
    //这里面有很多的坑
    // 1,re表达式内部不能加空格,否则会产生意想不到的错误,
    // console.log(/^[a-zA-Z][a-zA-Z0-9_]{5, 11}$/.test("xiaoming"));
    
    //2,test里面不写值,默认不是空,是校验的一个undefined,这是大坑啊,
    console.log(/^[a-zA-Z][a-zA-Z0-9_]{5,11}$/.test());//等同于console.log(/^[a-zA-Z][a-zA-Z0-9_]{5,11}$/.test("undefined"));
    
    //3,字符串替换
    //两种模式,g,i,
    var ss = 'Ahahaha';
    var sss = ss.replace("a","哈");//这样写只会替换第一个a,这个要记住,
    var sss = ss.replace(/a/,"哈");//这样写只会替换第一个a,这个要记住,这是正则的写法
    var sss = ss.replace(/a/g,"哈");//加一个g,就是说全局有多少就替换多少,
    var sss = ss.replace(/a/gi,"哈");//加一个i,就是说忽略大小写,都替换
    console.log(sss);

      

    ####

    ####

  • 相关阅读:
    flash 3d基础学习
    3d中的镜头
    [转]Android Canvas 切割 clipRect
    绘制球形
    绘制圆筒
    stage3d学习笔记1
    (转)Region.Op效果解析
    游戏中的镜头
    无向网的最小生成树——Prim算法(转)
    最短路径之——Dijkstra算法(转)
  • 原文地址:https://www.cnblogs.com/andy0816/p/15136874.html
Copyright © 2011-2022 走看看