详解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 相关文章推荐
通过身份证号得到出生日期和性别的js代码
Nov 23 Javascript
jquery 操作表格实现代码(多种操作打包)
Mar 20 Javascript
javascript表单验证 - Parsley.js使用和配置
Jan 25 Javascript
js字符串转换成xml对象并使用技巧解读
Apr 18 Javascript
原生js做的手风琴效果的导航菜单
Nov 08 Javascript
JavaScript获取表单内所有元素值的方法
Apr 02 Javascript
你不知道的 javascript【推荐】
Jan 08 Javascript
浅谈js中同名函数和同名变量的执行问题
Feb 12 Javascript
微信小程序 常用工具类详解及实例
Feb 15 Javascript
深入理解requireJS-实现一个简单的模块加载器
Jan 15 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
Aug 22 Javascript
vue中的使用token的方法示例
Mar 10 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
晶体管单管来复再生式收音机
2021/03/02 无线电
php的一个简单加密解密代码
2014/01/14 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
php 微信开发获取用户信息如何实现
2016/12/13 PHP
php实现评论回复删除功能
2017/05/23 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
ExtJs中gridpanel分组后组名排序实例代码
2013/12/02 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
Vue文本模糊匹配功能如何实现
2020/07/30 Javascript
编写Python脚本来实现最简单的FTP下载的教程
2015/05/04 Python
Python教程之全局变量用法
2016/06/27 Python
Windows下安装python2和python3多版本教程
2017/03/30 Python
Python语言描述最大连续子序列和
2017/12/05 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
python如何实现反向迭代
2018/03/20 Python
多个应用共存的Django配置方法
2018/05/30 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
2020/07/14 Python
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
社会实践先进工作者事迹材料
2014/05/06 职场文书
学习普通话的体会
2014/11/07 职场文书
教学反思怎么写
2016/02/24 职场文书
python 对图片进行简单的处理
2021/06/23 Python