详解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读取中文cookie时的乱码问题的解决方法
Oct 14 Javascript
在chrome中window.onload事件的一些问题
Mar 01 Javascript
document.compatMode的CSS1compat使用介绍
Apr 03 Javascript
jquery向上向下取整适合分页查询
Sep 06 Javascript
js给网页加上背景音乐及选择音效的方法
Mar 03 Javascript
JavaScript实现的简单幂函数实例
Apr 17 Javascript
更靠谱的H5横竖屏检测方法(js代码)
Sep 13 Javascript
浅谈JS中String()与 .toString()的区别
Oct 20 Javascript
vuex的简单使用教程
Feb 02 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
Aug 13 Javascript
原生js实现点击轮播切换图片
Feb 11 Javascript
Vue 根据条件判断van-tab的显示方式
Aug 03 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中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
解决Laravel5.2 Auth认证退出失效的问题
2019/10/14 PHP
Javascript学习笔记 delete运算符
2011/09/13 Javascript
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
详解jQuery中的事件
2016/12/14 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
解决vue点击控制单个样式的问题
2018/09/05 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
关于uniApp editor微信滑动问题
2021/01/15 Javascript
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
[00:11]战神迅矛
2019/03/06 DOTA
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
2021/02/06 Python
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
园林资料员岗位职责
2013/12/30 职场文书
餐饮总经理岗位职责
2014/03/07 职场文书
伦敦奥运会的口号
2014/06/21 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
交通安全横幅标语
2014/10/07 职场文书
幼儿学前班评语
2014/12/29 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书