详解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 页面内容搜索,类似于 Ctrl+F功能的实现代码
Aug 13 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
Jan 17 Javascript
Jquery多选框互相内容交换的实例代码
Jul 04 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
Mar 12 Javascript
浅析jQuery EasyUI中的tree使用指南
Dec 18 Javascript
jQuery中[attribute*=value]选择器用法实例
Dec 31 Javascript
jquery结合CSS使用validate实现漂亮的验证
Jan 29 Javascript
js使用DOM操作实现简单留言板的方法
Apr 10 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
Jun 26 Javascript
微信小程序request请求封装,验签代码实例
Dec 04 Javascript
uniapp实现横向滚动选择日期
Oct 21 Javascript
vue 中的动态传参和query传参操作
Nov 09 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
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
jquery remove方法应用详解
2012/11/22 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
jQuery的css() 方法使用指南
2015/05/03 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
jQuery获取radio选中项的值实例
2016/06/18 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
详解基于webpack2.x的vue2.x的多页面站点
2017/08/21 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
js实现移动端轮播图
2020/12/21 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
JS正则表达式验证密码强度
2020/03/18 Javascript
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
讲解Python中的递归函数
2015/04/27 Python
python分割列表(list)的方法示例
2017/05/07 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
美国网上书店:Barnes & Noble
2018/08/15 全球购物
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
软件测试工程师结构化面试题库
2016/11/23 面试题
财务部经理岗位职责
2014/02/03 职场文书
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python