JS基本语法之对象


对象

在JavaScript中,对象是一组无序的相关属性和方法的集合,如字符串,数值,数组,函数等.

对象是由属性和方法组成的

  • 属性:对象的特征
  • 方法:事物的行为

创建对象的三种方式

  1. 利用字面量创建对象 { }

    1. 其中属性或方法采用键值对的形式
    2. 多个属性或方法之间用逗号隔开
    3. 方法后面跟的是一个匿名函数
    4. 调用对象的属性 对象名.属性名 或 对象名[‘属性名’]
    
    var obj = { }//  创建一个空对象
    var obj = { 
    	name: linxueya,
    	age: 18,
        sayhi: function() {
            console.log("hi~");
        }
    }
  2. 利用new object() 方法创建属性

    var obj = new Object(); //创建了一个空的对象
  3. 利用构造函数创建对象

    构造函数:把对象里面一些相同的属性和方法抽象出来封装导函数里面

    function name(){
        this.属性 = 值;
        this.方法 = function(){}
    }
    new name();

变量、属性、函数和方法的区别

  • 变量:单独声明赋值,单独存在
  • 属性:对象里面的变量称为属性,不需要声明,用来描述该对象的特征
  • 函数:单独存在的,通过函数名调用
  • 方法:对象里的函数称为方法,方法不需要声明,通过对象名.函数名的方法调用

New关键字

New关键字执行过程

  1. New 构造函数可以在内存中创建一个空的对象
  2. this 就会指向刚才创建的空对象
  3. 执行构造函数里面的代码,给这个空对象添加属性和方法
  4. 返回这个对象

遍历对象属性

  • for in 遍历对象

    var obj = {
    	name: linxueya,
    	age: 18
    	sex:}
    
    for (var k in obj) {
    	console.log(k); // 输出属性名
    	console.log(obk[k]) // obj[k] 输出属性值
    }

内置对象

  • 内置对象就是JS语言自带的一些对象,这些对象供开发者使用,并提供了一些基础而必要的方法和属性

  • 如何学习对象中的方法 MDN

    1. 查阅该方法的功能
    2. 查看里面参数的意义和类型
    3. 查看返回值的意义和类型
    4. 通过demo进行测试

MATH对象

​ Math 是一个对象不是构造函数

  • Math 对象随机数方法 random( )

  • 得到两个数之间的随机整数,并且包含这两个整数

    Math.floor(Math.random() * (max -min +1)) + min; 
  • 随机取数

    arr[Math.random(0,arr.size())];

日期对象

Date() 是一个构造函数,必须使用new来调用

  • 使用 如果没有参数,则返回系统的当前时间
  • 参数常用的写法 数字型 2019,10,1 ;或者是字符串型 ‘2019-10-1 8:8:8’
  • 返回的月份,日期,星期比正常小1

通过Date() 获取总的毫秒数

  • valueOf() getTime() +new Date() Date.now()

数组对象

  • 数组可以通过字面量和new Array() 来创建
new Array() //创建一个空的数组
new Array(2) //创建一个长度为2的数组
new Array(2,3) //等价于 [2,3]
  • instanceof / isArray() 运算符 检测是否为数组
console.log(arr instanceof Array)
  • 添加 删除数组元素的方法

    push() / pop()

  • 数组翻转 reverse() ; 排序 sort( ); 数组索引 indexOf(); 数组转换为字符串 toString() join() // 分隔符; 数组拼接 concat(); 数组截取 slice(begin,end ) 数组删除 splice(第几个开始,删除的个数);

字符串对象

基本包装类型,就是把简单数据类型包装为复杂数据类型

var str = 'andy';

//等价于
var temp = new String('andy');
str = temp;
temp = null;

字符串的不可变:指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变量,内存中开辟了一个新的内存空间

字符串相关方法:

  • 返回字符串索引,indexOf(‘要查找的字符’,[其实的位置]) ;

    //查找字符串中所有o出现的次数
    var index = str.indexOf('o');
    while(index != 0){
    	console.log(index);
    	index = str.indexOf('0',index+1);
    }
    • 根据位置返回字符 ,str.charAt(index) str[index] // H5 新增;返回指定位置字符的ASCII码 str.charCodeAt(index) ;

      // 找出字符串中出现最多的字符,统计其出现的次数
      var str = 'abcoefoxyozzopp';
      var o = { };
      for(var i = o;i < str.length; i++){
      	var chars = str.charAt(i);
      	if( o[chars]) o[chars]++;
      	else o[chars] = 1;
      }
      
      var max = 0;
      for (var k in  o){
          if(o[k] > max){
              max = o[k];
          }
      }
    • 字符串操作:拼接字符串concat(str1,str2,str3…) 截取字符串 substr(start,length) ; slice(start,end) substring(start,end) ; 替换字符串replace(char1 char2); 字符串转换为数组 split(‘分隔符’) // join 把数组转换为字符串;


文章作者: linxueya
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 linxueya !
评论
  目录
喜迎
春节