JavaScript对象学习

简介: JavaScript对象学习

学习目标

了解常用的JS内置对象
学会自己学习内置对象,查看API文档

知识讲解


对象的Object创建方法

//字面量创建对象
var user = {
    name:'张三',
    age: 18,
    sex:'男',
    run:function(){
        console.log(this.name+"跑的很快");
    }
}
//访问
console.log(user.name);
//new Object创建对象
function Person(name,age,sex){
    this.name = name; 
    this.age = age;
    this.sex=sex;
    this.run = function(){}
}
可以简化代码,一次创建多个对象
var user1 = new Person('张三',18,'男');
//使用
console.log(user1.name);

内置对象的学习

内置对象: JS语言本身已经提供了一些功能给你使用,你只需要学习怎么看说明书用就行了.
一般看文档看以下几个方面:
  1.对象如何创建(是直接使用还是,需要new创建)
  2.对象有哪些属性,对应的功能是什么
  3.对象有哪些方法,对应的作用和代码什么?
  4.抄代码验证功能
  5.出了错误排错,并查文档或者百度
常见的内置对象: 
  Math    数学对象
    Array   数组对象
    Date  时间对象
    String 字符串对象

Math对象

Math.floor()                // 向下取整  往小了取
Math.ceil()                   // 向上取整  往大了取
Math.round()        // 四舍五入版 就近取整   注意 -3.5   结果是  -4 
Math.abs()          // 绝对值
Math.max()/Math.min()    // 求最大和最小值
//生成0-1之间的随机数
Math.random()  生成0-1之间的随机数 取值范围是[0,1)
//生成1-100之间的随机数,100要可取
Math.random()*100 +1   生成1-101之间的随机数
Math.floor(上面的结果);  向下取证,就可以得到1-100之间的随机数
//万能公式
Math.floor(Math.random() * (max - min + 1) + min);    

Date对象

//内置Date时间对象
var now = new Date();
console.log(now); 
//如果Date()中不写参数,就返回当前时间,如果写参数返回括号中的时间
//new Date('2015-5-1')  或者  new Date('2015/5/1')
获取毫秒值:
var now = new Date();
// valueOf用于获取对象的原始值
console.log(now.valueOf());
console.log(now.getTime());
  • 获取日期指定部分


方法名 说明 代码
getFullYear() 获取当年 dObj.getFullYear()
getMonth() 获取当月(0-11) dObj.getMonth()
getDate() 获取当天日期 dObj.getDate()
getDay() 获取星期几 (周日0 到周六6) dObj.getDay()
getHours() 获取当前小时 dObj.getHours()
getMinutes() 获取当前分钟 dObj.getMinutes()
getSeconds() 获取当前秒钟 dObj.getSeconds()


  • 注意 月份 和星期 取值范围是从 0开始的。


数组对象

a instanceof  Array  //可以判断a是不是Array数组对象
toString()     //数组转字符串,逗号分隔
push()  //向数组最后添加元素
pop()   //删除数组最后一个元素
shift() //删除数组中第一个元素
unshift()  //向数组的开头添加元素
reverse()   //反转数组
sort()      //数组排序
concat()   //连接数组
splice()   //删除,修改,新增数组 (开始位置,删除个数,新增数据)
indexOf()  //查询数组位置
join()    // 连接数组
function 名字(形参){
    内容
}
名字(实参)
1.函数的功能
2.传参的类型
3.函数的返回值

数组的两种创建方式

//1.new对象创建数组 
var arr = new Array(); 
// 数组长度为3 但是内容为空
var arr = new Array(3); 、
// 创建数组  [3,4,6]
var arr = new Array(3, 4, 6); 
// 2. 使用字面量创建数组对象
var arr = [1, 2, 3];
// 获取数组中元素的个数
console.log(arr.length);

检测是否是数组

 instanceof
var arr = [1, 23];
var obj = {};
console.log(arr instanceof Array); // true
console.log(obj instanceof Array); // false

数组常见方法1

toString()
reverse()
concat()
indexOf()
lastIndexOf()
//数组转换为字符串
var arr = [1, 2, 3, 4, 5];
//1,2,3,4,5  数组转字符串
console.log(arr.toString());
//将数组倒过来
console.log(arr.reverse());
//连接数组
var arr2 = [6, 7, 8, 9, 10];
console.log(arr.concat(arr2));
//注意:数组的操作是影响原来的数组
var arr3 = ['a', 'c', 'b', 'f', 'e', 'b'];
//找到某给字符的位置索引
console.log(arr3.indexOf('b'));
console.log(arr3.lastIndexOf('b'));

数组的添加和删除

1.push()  //向数组最后添加一个或多个元素,返回新长度
2.pop()   //删除数组最后一个元素,数组长度减1,返回删除元素值
3.shift() //把数组中的第一个元素删除,数组长度减1,返回删除元素值
4.unshift()  //向数组的开头添加一个或多个元素,返回新长度
var arr = [1, 2, 4, 5, 6];
//从arr中添加两个值,push方法返回新数组的长度
var result = arr.push(7, 8);
console.log(arr);
console.log(result);
//pop方法取出数组中的最后一个元素,并返回该元素
console.log(arr.pop());
console.log(arr);
console.log('========================')
//返回值
var len = arr.unshift(10, 11);
console.log(arr);
console.log(len);
//从数组前面取出一个数
console.log(arr.shift());
console.log(arr);

数组的排序方法

sort()  默认对字符排序,对个位数的数字也能排序,多位数的就要设置排序规则
// var arr = ['a', 'c', 'b', 'd', 'f', 'e'];
var arr = [1, 4, 15, 21, 23, 16, 8, 7];
//sort实际上是单个字符的Unicode编码来排序的
//默认是按照字符串的方式去排序的,对个位数的数字排序也有效果.
arr.sort(function(a, b) {
    return a - b; //升序, b-a降序
});
console.log(arr);

数组的删除修改添加

var arr = ['张三', '李四', '王五', '赵六', '李明', '周围'];
//splice() 删除, 添加,修改
//splice(开始位置,删除个数);
//返回值就是删除的数据
// var delArr = arr.splice(2, 2);
// console.log(arr);
// console.log(delArr);
//添加的作用 splice(开始位置,删除个数为0,添加的元素)
// arr.splice(2, 0, "貂蝉", '吕布');
// console.log(arr);
//修改的作用: splice(开始位置,删除个数,新增元素);
var delArr = arr.splice(0, 2, '吕布', '貂蝉');
console.log(arr);
console.log(delArr)

数组的连接方法

var arr = ['zs', 'ls', 'ww', 'zl'];
//注意: join没有改变原数组
// var result = arr.join(''); //数组元素连接
var result = arr.join('@'); //数组元素用符号连接    
console.log(result);
//如果join中啥都不写,那么数组默认用逗号连接

字符串对象


字符串不可变性(理解)

字符串的不可变  指的是里面的值不可变,  看上去可以改变内容,其实是地址变了,新开辟了一个内存空间。
var str = 'abc';
str = 'hello';
// 当重新给str赋值的时候,常量'abc'不会被修改,依然在内存中
// 重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变
// 由于字符串的不可变,在大量拼接字符串的时候会有效率问题
var str = '';
for (var i = 0; i < 100000; i++) {
    str += i;
}
console.log(str); // 这个结果需要花费大量时间 来 显示 因为需要不断的开辟新的空间

字符串的常用方法


字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串


// 1 字符方法
charAt()        //获取指定位置处字符
字符串操作方法
concat()        //拼接字符串,等效于+,+更常用
substr()        //从start位置开始,截取length个字符
位置方法
indexOf()       //返回指定内容在元字符串中的位置
lastIndexOf()   //从后往前找,只找第一个匹配的
trim()          //只能去除字符串前后的空白
大小写转换方法
toUpperCase()   //转换大写
toLowerCase()   //转换小写
replace()  //替换
split() //切割
//遇到不清楚的方法,学会去查文档学习.

字符串常用方法1

var str = '今天天气下雨,空气不错';
//根据索引获得字符串中的某个字符
console.log(str.charAt(str.length - 1))
//连接字符
console.log(str.concat(',需要带一把伞'));
//截取字符串: substr是抽取字符串中的某一部分,并不会改变原字符串
console.log(str.substr(0, 2))
console.log(str);
//找到对应字符串的位置
console.log(str.indexOf('错'));
//替换字符
console.log(str.replace('下', '上'))

字符串常用方法2

//空格也是字符
var str = '    小米手机   ';
console.log(str.length);
//trim去掉字符串前后的所有空格
console.log(str.trim());
//大小写的转换
var str2 = 'AbCd123Ef';
//转换成大写
console.log(str2.toUpperCase());
console.log(str2.toLowerCase());
//切割字符串
var email = "zs@qq.com;lisi@qq.com;wangwu@qq.com";
//将切割出来的数据,存到数组中
console.log(email.split(';'));
//保存邮箱的数组emailArr=["zs@qq.com", "lisi@qq.com", "wangwu@qq.com"]
var emailArr = email.split(';');
for (var i = 0; i < emailArr.length; i++) {
    // console.log(emailArr[i]);
    var user = emailArr[i].split('@');
    // user=['zs','qq.com']
    console.log(user[0]);
}

网址URL解析

var urlStr = 'http://127.0.0.1/login?username=admin&password=1213';
var user = {} //存放处理完的数据对象
var userData = urlStr.split('?')[1];
userData = userData.split('&');
//循环将用户名和密码都打印出来
for (var i = 0; i < userData.length; i++) {      
    var str = userData[i].split('=');              
    user[str[0]] = str[1];
}
console.log(user);
console.log(user.username);
console.log(user.password);

今日总结


1.对象的三种写法

1.字面量创建对象

2.new Object创建对象

3.构造函数创建对象

2.数学对象

Math.PI

Math.floor() 向下取整

Math.ceil() 向上取整

Math.round() 四舍五入

Math.random() 生成随机数

3.数组的方法

1.数组 new Array()

2.对象检测 instanceof

3.数组的方法

toString() 转换为字符串

concat() 连接数组

indexOf() 找数组中的元素位置索引

lastIndexOf() 从后往前找位置

reverse() 数组反转

sort() 排序

push() 末尾添加

pop() 末尾移出

unshift() 开头添加

shift() 开头移出

join() 连接

splice() 删除,修改,新增

目录
相关文章
|
17天前
|
JavaScript 前端开发
如何在 JavaScript 中使用 __proto__ 实现对象的继承?
使用`__proto__`实现对象继承时需要注意原型链的完整性和属性方法的正确继承,避免出现意外的行为和错误。同时,在现代JavaScript中,也可以使用`class`和`extends`关键字来实现更简洁和直观的继承语法,但理解基于`__proto__`的继承方式对于深入理解JavaScript的面向对象编程和原型链机制仍然具有重要意义。
|
21天前
|
Web App开发 JavaScript 前端开发
如何确保 Math 对象的方法在不同的 JavaScript 环境中具有一致的精度?
【10月更文挑战第29天】通过遵循标准和最佳实践、采用固定精度计算、进行全面的测试与验证、避免隐式类型转换以及持续关注和更新等方法,可以在很大程度上确保Math对象的方法在不同的JavaScript环境中具有一致的精度,从而提高代码的可靠性和可移植性。
|
9天前
|
存储 JavaScript 前端开发
JavaScript学习第一章
本文档介绍了JavaScript的基础知识,包括其在网页中的作用、如何通过JavaScript动态设置HTML元素的CSS属性,以及JavaScript中的变量类型(`var`、`let`、`const`)和数据类型(基本数据类型与引用数据类型)。通过实例代码详细解释了JavaScript的核心概念,适合初学者入门学习。
|
21天前
|
JavaScript 前端开发 图形学
JavaScript 中 Math 对象常用方法
【10月更文挑战第29天】JavaScript中的Math对象提供了丰富多样的数学方法,涵盖了基本数学运算、幂运算、开方、随机数生成、极值获取以及三角函数等多个方面,为各种数学相关的计算和处理提供了强大的支持,是JavaScript编程中不可或缺的一部分。
|
2月前
|
缓存 JavaScript 前端开发
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
34 1
|
2月前
|
存储 JavaScript 前端开发
js中函数、方法、对象的区别
js中函数、方法、对象的区别
19 2
|
2月前
|
JavaScript
js学习--商品列表商品详情
js学习--商品列表商品详情
20 2
|
2月前
|
JavaScript
js学习--九宫格抽奖
js学习--九宫格抽奖
19 2
|
2月前
|
JavaScript
js学习--开屏弹窗
js学习--开屏弹窗
36 1
|
2月前
|
JavaScript
js学习--抽奖
js学习--抽奖
17 1
下一篇
无影云桌面