JavaScript笔记--02

Web 文档 MDN:https://developer.mozilla.org/zh-CN/
面向对象:继承、封装、多态(抽象性)
js不是面向对象的语言,但可以模拟面向对象的思想。
创建对象:

	var a=new object();

构造函数名字大写,在当前对象方法中,可以用this代替当前对象。

	function Person(name,age) {
        this.name=name;
        this.age=age;
        this.ff=functi.on() {
            console.log("aaa");
        };
    }
    var a=new Person("小明",20);
    a.ff();

instanceof 判断该对象是否属于该类型。
用字面量的方式创建对象:var obj={};

	var a1={
		name:"小明",
		age:20,
		eat:function (){
		console.log("吃饭");
		}
	};
	a1.eat();
	var a2={};    //空对象
	a2.eat=function() {
		console.log("吃饭");
	};

obj.name=“小白”; 相当于obj[“name”]=“小白”;
obj.eat(); 相当于obj[“eat”] ();

遍历对象不能用for循环,只能用for-in循环,并且不能用Person.key输出

	var Person={
        name:"小明",
        age:20
    };
    for(var key in Person) {
        console.log(Person[key]);
    }

引用类型object的对象在堆中存储,地址在栈中存储。
person的指向变化,但p没有变。

 	function Person(name, age) {
        this.name = name;
        this.age = age;
    }
    function f1(person) {
        person.name = "小明";
        person = new Person("小花", 17);
    }
    var p = new Person("小红", 18);
    console.log(p.name);
    f1(p);
    console.log(p.age);
    //小红  小明

内置对象:Math,String,Date,Array,Object
Math 的所有属性和方法都是静态的。(注意M大写)
Math.pi—π
Math.ceil()-----向上取整
Math.floor()-----向下取整
Math.max()-----最大值
Math.pow()-----一个数字的几次幂
Math.random()-----随机数
Math.abs() -----绝对值

JSON格式的数据都是键值对,是格式化好的一组字符串数据,属性用 “ ” 括起来。

随机十六进制颜色:

	function f1() {
        var str="#";
        var arr=["1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","0"];
        for (i=0;i<6;i++){
            var num=parseInt(Math.random()*16);
            str+=arr[num];
        }
        return str;
    }

    window.function(){
        //在文档中通过id属性查找这个元素,并设置颜色
        document.getElementById("dd").style.backgroundColor=f1();
    };

获取当前时间的函数:

     function getDate(sj) {
        var year = sj.getFullYear();
        var month = sj.getMonth() + 1;
        var date = sj.getDate();
        var hour = sj.getHours();
        var minute = sj.getMinutes();
        var second = sj.getSeconds();
        month = month < 10 ? "0" + month : month;
        date = date < 10 ? "0" + date : date;
        hour = hour < 10 ? "0" + hour : hour;
        minute = minute < 10 ? "0" + minute : minute;
        second = second < 10 ? "0" + second : second;
        return year + "年" + month + "月" + date + "日 " + hour + ":" 
        + minute + ":" + second;
    }
    var dt = new Date();
    console.log(getDate(dt));

js没有字符类型。字符串可以通过索引访问字符串中的某个值,不能只能读。

字符串的属性:
str.concat(字符串1,字符串2) -----字符串拼接函数
str.fromCharCode() ------返回ASCII码对应值
str.indexOf(要找的字符串,从某个位置开始的索引) -----返回的是字符串索引值,没找到返回-1,从左往右,lastIndexOf从右往左
str.replace(原字符串,新字符串2) -----替换字符
str.slice(2,5) -----提取从2到5的字符串
str.split(要取代的字符串,切割后留下的字符串) -----切割字符串
str.toLocalLowerCase() / str.toLowerCase() -----大写字符转小写
str.toLocalUpperCase() / str.toUpperCase() -----小写字符转大写
str.trim -----删掉字符串两端的空格

判断字符串中每个字符出现的次数:

var str = "sgwdgwjHJGHfikewhrehHHHHjh";
    str = str.toLocaleLowerCase();
    var obj = {};  //创建一个空对象,把字母作为键,把次数作为值
    for (var i = 0; i < str.length; i++) {
        var key = str[i];  //每个字母
        if (obj[key]) {
            obj[key]++;
        } else {
           // 如果对象中没有字母,把字母加到对象中
            obj[key] = 1;
        }
    }
    for (var key in obj){
        console.log(key+"出现了"+obj[key]+"次");
    }

Array.concat(数组1,数组2…) -----组合成一个新数组
Array.every(函数) -----返回值是布尔类型,函数作为参数使用,分别是当前的元素值,索引,原来的数组。只有当条件都满足时,才会返回true。
Array.filter(函数) ----返回数组中都符合条件的每一个元素,组成数组。

	var arr=[20,30,4,5,6,77,0,99,0,3,50];
    var newarr=arr.filter(function(ele){
        return ele<20;
    });
    console.log(newarr);

Array.push() -----把值追加到数组最后,返回值是最后的数组
Array.pop() -----删除数组最后一个,返回该值
Array.shift() ----删除数组中第一个元素,返回该值
Array.unshift() ----向数组第一个元素前插入一个值
Array.forEach() -----遍历数组,相当于for循环
Array.join(字符串1,字符串2) -----各字符串中增加字符
Array.map(函数) -----数组中的每个元素都执行完该函数后返回新数组
Array.reverse() -----反转数组
Array.sort() -----排序,可能不稳定

基本包装类型: 本身是基本类型,但该变量调用属性和方法,就不再是基本类型,那这个变量成为了基本包装对象。

	var num=10;
	var num1=Number("10");   ----没有new,类型转换
	var num2=new Number("10");  ----基本包装类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值