文章目录

  • JS对象
    • 创建对象的三种方式
    • 内置对象
      • Math对象
      • Date对象
      • 数组对象
      • 字符串对象

JS对象

JS中所有事物都是对象。字符串、数值、数组、函数、布尔型、数字型、日期、数学和正则表达式都是对象,也可以自定义对象。
对象;是一种特殊的数据,拥有属性和方法.
属性:事物的特征
方法:事物的行为

创建对象的三种方式

利用字面量创建对象:

var obj={}; //创建了一个空对象
var obj={uname:'张三',
age:18,
sex:'男',
sayHi:function(){alert('hi');}
} //创建了非空对象
console.log(obj.uname);//调用属性
console.log(obj['age']);
obj.sayHi();//调用方法
for(var k in obj){console.log(k);//k为变量 输出为属性名
console.log(obj[k]);
}

利用new Object创建对象

var obj=new Object();//创建了一个空的对象
obj.uname='张三'';
obj.age=18;
obj.sayHi=function(){console.log('hi');
}

利用构造函数创建对象

function Fun(uname,age,sex){this.name=unme;
this.age=age;this.sex=sex;}var wcn=new Fun("张三",18,女);//调用函数返回的是一个对象console.log(wcn.name);var zwq=new Fun("李四",18,女);

通过new关键字创建对象的过程我们也称为对像实例化.
构造函数:就是把对象里面一些相同的属性和方法抽象出来封装到函数里面(构造函数名首字母大写,不需要return返回结果).

内置对象

常见的内置对象:Math、Date、Array、String。

Math对象

Math数学对象不是一个构造函数,所以不需要new来调用,而是直接使用里面的属性和方法即可.
利用对象封装自己的数学对象

var =nyMath={PI:3.141592653;
max:function(){var max=arguments[0];
for{var i=1;i<argument.length;i++){if(arguments[i]>max){max=arguments[i];}}return max;
}
}
console.log(nyMath.PI);

方法:

Math.abs(-1);//1 绝对值
Math.floor(1.9);//1 向下取整
Math.ceil(1.1);//2 向上取整
Math.round(1.1);//1 四舍五入
Math.round(-1.5)//1 .5特殊,它忘较大值取
Math.random();//返回一个随机的小数,且该小数大于等于0,小于1
function getRandom(min,max){//得到两个数之间的随机整数,并且包含这两个整数
Math.floor(Math.floor(Math.random*()max-min+1))+min;
}

Date对象

Date()日期对象,是一个构造函数,必须使用new来调用创建日期对象.

var date=new Date();//没有参数,返回当前系统的当前对象
var date1=new Date(2019,10,1);
console.log(date1);//返回的是11月,不是10月
var date2=new Date('2019-10-1 8:8:8');
console.log(date2);//更常用

日期格式化:

obj.getFullYear();//获取当年
obj.getMonth();//获取当月(0-11)
obj.getDate();//获取当天日期
obj.getDay();//获取星期几(周日0到周六6)
obj.getHours();//获取当前小时
obj.getMinutes();//获取当前分钟
obj.getSeconds();//获取当前秒钟

数组对象

创建数组

var arr=[1,2,3];//利用数组字面量
var arr1=new Array(2);表示创建了一个长度为2的数组
var arr2=new Array(2,3);表示创建了一个元素为2,3的数组
var obj={};
console.log(arr instanceof Array);//检测是否为数组,返回true
console.log(obj instanceof Array);//返回false
console.log(Array.isArray(arr));//检测是否为数组,返回true

添加删除数组元素

var arr=[1,2,3];
arr.push(4,'pink');//在数组末尾添加一个或多个数组元素,返回数组长度
arr.unshift('red','purple');//在数组前面追加新元素
arr.pop();//删除数组最后一个元素,返回删除元素的值
arr.shift();//删除数组第一个元素

翻转数组

var arr=[1,2,3];
arr.reverse();

数组排序

var arr=[4,3,7,99,13];
arr.sort(function(a,b){//returna-b;升序的顺序排列
return b-a;//降序的顺序排列
})

返回数组元素引导方法

var arr=['red','green','yellow','blue'];
console.log(arr.indexOf('blue'));//只返回第一个满足条件的索引号,在数组中找不到元素则返回-1

数组去重
原理:遍历旧数组,查询新数组

function unique(arr){var newArr=[];
for(var i=0;i<arr.length;i++}{if(newArr.indexOf(arr[i])===-1){newArr.push(arr[i]);}}return newArr;
}
var demo=unique(['a','b','d','a','b','a','t','y']);

数组转化为字符串

var arr=[1,2,3];
console.log(arr.toString());
console.log(arr.join());//默认用逗号分割

字符串对象

基本包装类型就是把简单数据类型包装成复杂数据类型,而对象(为复杂数据类型)才有属性和方法.

字符串的不可变:指的是里面的值不可变,虽然看上去可以改变内容,但实际上地址变了,即内存中开辟了一个内存空间(不断开辟新空间会导致电脑卡顿).

根据字符返回位置

var str='爱上对方过后就哭了';
console.log(str.indexOf('对'),2);从索引号是2的位置开始查找,返回的的"对"的索引号

根据位置返回字符

var str='爱上对方过后就哭了';
console.log(str.charAt(3));返回索引号为3的字符
console.log(str.charCodeAt(0));返回相应索引号的字符的ASCII值(多用于判断用户按下了哪个键)
console.log(str[0];//和charAt()等效

拼接和截取字符串

替换字符串:str.replace(‘被替换的字符’,‘替换为的字符’); 只会替换第一个字符.
字符转为数组:str.split(’,’); 分隔符是什么取决于字符串由什么分割

前端学习---JS高级教程相关推荐

  1. 前端学习--js.2

    写一个通用的事件侦听器函数 markyun.Event = { //页面加载完成后 readyEvent :function(fn) { if(fn==null) { fn=document; } v ...

  2. 前端学习(3262):js高级教程(6)变量

  3. 前端学习(3262):js高级教程(5)数据变量和内存

  4. 前端学习(3261):js高级教程(4)相关问题

  5. 前端学习(3260):js高级教程(4)instanceof

  6. 前端学习(3259):js高级教程(3)typeof

  7. 前端学习(3258):js高级教程(2)

  8. 前端学习(3257):js高级教程(1)准备

  9. 前端学习——JS基础知识点复习

    一. JS复习 1.1 如何使用JS HTML标签内使用JS,要求写在onclick等事件属性或者href属性中(不推荐使用) 页面中的script标签内可以直接写JS代码 script标签的src属 ...

最新文章

  1. java基础(九) 可变参数列表介绍
  2. UIView CALayer
  3. 【转贴】PLSQL不安装客户端连接远程oracle
  4. windows查看器无法打开图片_关于windows微软商城无法打开 错误代码0x80004003问题...
  5. [2018-2019上] 第一次过程性考核成绩
  6. 求助wpe封包遇到动态验证怎么办
  7. 世界地图可以无限放大_国外测评 | 老蛙百微镜头的全方位解析,2倍放大倍率的优质表现!...
  8. 企业资源计划(ERP)原理与实践第一章
  9. imput的一些限制输入方法
  10. python范围缩放_如何缩放到初始绘图/缩放的特定范围?
  11. 如何免费使用xshell、xftp工具
  12. 【犯二记录】链表结点换位引发的思维僵化,太可怕,智商 == 0
  13. 02块级标签和内联标签的区别
  14. unity3d学习笔记-报错
  15. 用日志构建坚固的数据基础设施/为什么双写不好
  16. 关于global_step参数
  17. 在ArcGIS中批量删除属性表字段
  18. 计算机windows7启动不了桌面,电脑开机进不了桌面,教您电脑开机进不了桌面怎么办...
  19. 〖Python 数据库开发实战 - Python与Redis交互篇⑪〗- 综合案例 - 新闻管理系统 - 缓存新闻数据至redis
  20. 使用Cloudberry Explorer管理和访问阿里云OSS

热门文章

  1. 计算机专业见刊快的普刊,可以快速见刊的普刊有哪些?
  2. 精神病人思维广 ——读《天才在左,疯子在右有感》
  3. 如何使用MYSQL触发器,备份历史记录?
  4. 约瑟夫环问题 —— 算法
  5. 紫书时时阅,茶香几时成——铁观音茶香Muffin
  6. 【MSP432P401R】基于Keil平台的工程模板的创建
  7. 我的Macbook pro使用体验
  8. html中的mata标签详解
  9. Python计算歌手得分数案例
  10. 数字金额转化大写金额