详解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 操作文件 实现方法小结
Jul 02 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
Apr 07 Javascript
基于jquery DOM写的类似微博发布的效果
Oct 20 Javascript
jquery xMarquee实现文字水平无缝滚动效果
Apr 29 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
Aug 24 Javascript
javascript返回顶部的按钮实现方法
Jan 09 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
Jun 01 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
Mar 24 jQuery
jQuery Pagination分页插件_动力节点Java学院整理
Jul 17 jQuery
GOJS+VUE实现流程图效果
Dec 01 Javascript
JavaScript中的一些实用小技巧总结
Apr 07 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
May 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
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
js 自带的 map() 方法全面了解
2016/08/16 Javascript
js中的DOM模拟购物车功能
2017/03/22 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
Python读写Excel文件方法介绍
2014/11/22 Python
python利用正则表达式提取字符串
2016/12/08 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
python实现图片处理和特征提取详解
2017/11/13 Python
同时安装Python2 &amp; Python3 cmd下版本自由选择的方法
2017/12/09 Python
ubuntu中配置pyqt4环境教程
2017/12/27 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
详解爬虫被封的问题
2019/04/23 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
golang/python实现归并排序实例代码
2020/08/30 Python
Python描述数据结构学习之哈夫曼树篇
2020/09/07 Python
全球知名鞋履品牌授权零售商:Journeys
2016/09/17 全球购物
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
社区工作者先进事迹
2014/01/18 职场文书
工作自我评价怎么写
2014/01/29 职场文书
公司任命书模板
2014/06/06 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
校运会新闻稿
2015/07/17 职场文书
2019个人半年工作总结
2019/06/21 职场文书