详解js访问对象的属性和方法


Posted in Javascript onOctober 25, 2018

对象的属性和方法统称为对象的成员。

访问对象的属性

在JavaScript中,可以使用“ . ”和“ [ ] ”来访问对象的属性。

二者区别:“ . ”表示法一般作为静态对象使用时来存取属性。而“[ ]”表示法在动态存取属性时就非常有用。

var object = {name:'xiaoming',age:29};
var name1 = object.name;var name2 = object['name'];

访问对象的方法

在JavaScript中,只能用“ . ”来访问对象的方法。

function Person(){
  this.name = 'xiaoming';
  this.age = 29;
  this.say = function(){
    alert('This is person');
  }     
}
var student = new Person();
alert(student.name);
alert(student['age']);
student.say(); //使用" . "访问对象方法

引申出的两个题目:

1.判断一个字符串中出现次数最多的字符,统计这个次数

var str = 'Thisthebesttimesewerty';
var obj = {};
for(var i=0; i<str.length;i++){
  var char = str[i];
 // var char = str.charAt(i); //charAt()可返回指定位置的字符,i为字符的下标,从0开始
  if(obj[char]){
    obj[char]++; //char是obj对象的一个属性,如果存在次数加1
  }else{
    obj[char] = 1; //如果不存在,保存在obj中并计数为1
  }
}
 
var max = 0;
var maxChar = null;
for(var key in obj){
  if(max < obj[key]){
    max = obj[key]; //出现最多次数max
    maxChar = key; //出现次数最多的字符maxChar
  }
}

2.编写arraysSimilar函数,实现判断传入的两个数组是否相似。

具体需求:

1. 数组中的成员类型相同,顺序可以不同。例如[1, true] 与 [false, 2]是相似的。

2. 数组的长度一致。

3. 类型的判断范围,需要区分:String, Boolean, Number, undefined, null, 函数,日期, window.

当以上全部满足,则返回"判定结果:通过",否则返回"判定结果:不通过"。

function arraysSimilar(arr1,arr2){
  if(!(arr1 instanceof Array) || !(arr2 instanceof Array)){
     return false;
  }  
  if(arr1.length !== arr2.length){
     return false;
  }
 
  var i=0, n=arr1.length, countMap1={}, countMap2 = {}, t1, t2,
  TYPES = ['string','boolean','number','undefined','null','function','date','window'];
 
  for(i; i<n; i++){
     t1 = typeOf(arr1[i]);
     t2 = typeOf(arr2[i]);
     if(countMap1[t1]){
       countMap1[t1]++;
     } else{
       countMap1[t1] = 1;
     }
 
    if(countMap2[t2]){
       countMap2[t2]++;
     } else{
       countMap2[t2] = 1;
     }
  }
 
  for(i=0; i<TYPES.length; i++){
    if(countMap1[TYPES[i]] != countMap2[TYPES[i]]){
      return false;
    }
  }
  return true;
}
 
function typeOf(ele){
  var r;
  if(ele === null){
    r = 'null';
  }
  else if(ele === 'window'){
    r = 'window';
  }
  else if(ele instanceof Array){
    r = 'array';
  }
  else if(ele instanceof Date){
    r = 'date';
  }
  else{
    r = typeof(ele);
  }
  return r;
}
Javascript 相关文章推荐
关于javascript document.createDocumentFragment()
Apr 04 Javascript
讨论javascript(一)工厂方式 js面象对象的定义方法
Dec 15 Javascript
23个Javascript弹出窗口特效整理
Feb 25 Javascript
js如何获取file控件的完整路径具体实现代码
May 15 Javascript
JavaScript中for..in循环陷阱介绍
Nov 12 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
Jul 27 Javascript
JS实现选项卡实例详解
Nov 17 Javascript
noty ? jQuery通知插件全面解析
May 18 Javascript
JavaScript6 let 新语法优势介绍
Jul 15 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
Oct 09 Javascript
JavaScript获取中英文混合字符串长度的方法示例
Feb 04 Javascript
React Native实现地址挑选器功能
Oct 24 Javascript
深入浅析js原型链和vue构造函数
Oct 25 #Javascript
AngularJS 多指令Scope问题的解决
Oct 25 #Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
Oct 24 #jQuery
webpack打包非模块化js的方法
Oct 24 #Javascript
如何实现一个webpack模块解析器
Oct 24 #Javascript
vue项目中使用Svg的方法
Oct 24 #Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
Oct 24 #Javascript
You might like
Protoss建筑一览
2020/03/14 星际争霸
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
使用jquery清空、复位整个输入域
2015/04/02 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
JavaScript展开操作符(Spread operator)详解
2019/07/20 Javascript
vue界面发送表情的实现代码
2020/09/11 Javascript
[02:15]2015国际邀请赛选手档案IG.Ferrari 430
2015/07/30 DOTA
Python之eval()函数危险性浅析
2014/07/03 Python
Python文档生成工具pydoc使用介绍
2015/06/02 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
详解python中的json和字典dict
2018/06/22 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
Python读取stdin方法实例
2019/05/24 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
解决Python中pandas读取*.csv文件出现编码问题
2019/07/12 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
opencv python 对指针仪表读数识别的两种方式
2021/01/14 Python
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
优秀党支部事迹材料
2014/01/14 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
教代会闭幕词
2015/01/28 职场文书
军事博物馆观后感
2015/06/05 职场文书
培训计划通知
2015/07/15 职场文书
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers