07.JS对象-2
前言:
学习一门编程语言的基本步骤
(01)了解背景知识
(02)搭建开发环境
(03)语法规范
(04)常量和变量
(05)数据类型
(06)数据类型转换
(07)运算符
(08)逻辑结构
(09)函数
(10)对象
10.对象
包装对象,目的是让原始类型像引用类型一样,具有属性和方法。
JS提供了3种包装对象:String,Number,Boolean
04.String对象
1) 将任意数据转为字符串
new String(值) 返回对象,使用和字符串没有区别
//String对象——new String()
var str1=new String ("a");//带new都是构造函数,可以返回函数
console.log(str1,typeof str1);//String {"a"} "object"
String(值) 返回字符串
//String对象——String
var str1="a";
console.log(str1+'b');
//将任意数据转为字符串——String()
var str2=String(true);//普通函数
console.log(str2,typeof str2);//true string
2) 转义字符—— \
解释:转换字符的意义
用法:放在要转换意义的字符前边
注意:斜杠:"/" 与反斜杠:"\" ,此处不可互换
\’ 将特殊意义的引号转成普通字符
\n 将字符n转换成换行符
\t 将字符t转换成制表符(tab键效果)
//转义字符——\
console.log("It's a cat");// 双引号,里外使用不同的引号区分
console.log('It\'s a cat');//单引号与单引号的使用是冲突的,可使用转义字符
console.log('hello \n world');//单引号 \n n不见了,并且world换行
console.log('a\tb')//a b,制表符,tab键四个空格
3)字符串下的api
length 获取字符串的长度。
// 获取长度——length
var str='javascript';
console.log(str.length);//
charAt() 获取下标对应的字符,也可以使用数组形式 字符串[下标]。
//获取下标对应的字符——charAt()
var str='javascript';
console.log(str[0]);//j
console.log(str.charAt(0));//j
split(sep)将字符串按照制定的字符分割成数组,sep是指定的字符。
//将字符串按照制定的分隔符号转为数组——split(sep)
var str='a-b-c';
console.log(str.split("-"));// ["a", "b", "c"]
//将数组按照制定的分割符转为字符串,
//注意两处区别,一个数数组变字符串,一个是字符串变数组
var arr=['a','b','c','d'];
console.log(arr.join("-"));//a-b-c-d
slice(start,end) 截取字符串,start开始的下标,end结束的下标,不包含end本身,end为空截取到最后,负数表示倒数。
//截取字符串——slice(start,end)
var str='javascript';
console.log(str.slice(4));//下标4之后截取到最后
console.log(str.slice(4,7));//截取到下标7,但是不包含下标7
console.log(str.slice(-3));//倒数第三位截取到最后
console.log(str.slice(-3,-1));//倒数第三位截取到倒数第二位
substr(start,count)截取字符串,start开始的下标,count截取的长度,如果count为空,截取到最后;start为负数,表示倒数。
//截取字符串,按长度来截取——substr(start,count)
var str='javascript';
console.log(str.substr(2,3));//从下标2开始截取,截取三位
console.log(str.substr(4));//end为空,截取到最后
console.log(str.substr(-3));//负数为倒数
substring(start,end) 截取字符串,start开始的下标,end结束的下标,不包含end本身,如果end为空截取到最后,如果下标为负数自动转成0。
//截取字符串——substring(start,end)
var str='javascript';
console.log(str.substring(4));
console.log(str.substring(4,7));//从小标4开始,截取到下标6
//负数转为0
console.log(str.substring(-3,-1));//-3代表0,所以是截取不到东西的
console.log(str.substring(1,3));
console.log(str.substring(3,1));//自动转换前后的数字大小,下标位置大的数值会转换到后面
indexOf(value,start)查找某个字符串出现的下标,value要查找的字符串,start开始的下标,默认是0,如果找不到返回-1。
//获取某个字符串的下标——indexOf(value,start)
var str='javascript';
console.log(str.indexOf('s'));
console.log(str.indexOf('a',2));//2的意思是下标2的位置开始
console.log(str.indexOf('a',5));//-1,找不到返回为-1
lastIndexOf(value)查找某个字符串最后一次出现的下标,找不到返回-1。
//查找某个字符最后一次出现的下标——lastIndexOf(value)
var str='javascript';
console.log(str.lastIndexOf('a'));//
console.log(str.lastIndexOf('b'));//找不到返回-1
toUpperCase() 将英文字母转大写
//转大写——toUpperCase()
var str='JavaScript';
console.log(str.toUpperCase());//JAVASCRIPT
toLowerCase() 将英文字母转小写
//转小写——toLowerCase()
var str='JavaScript';
console.log(str.toLowerCase());//javascript
对比slice和 substring
slice为截取数组中的元素,slice中下标允许使用负数表示倒数,slice中下标的顺序start小于end
substring为截取字符串,substring下标负数自动转成0,substring中下标大小不分顺序,会自动排序
05.Number对象
new Number(值) 将数据转为数值型,返回对象
//将数据转为数值型,返回数值—— Number(值)
var num1=2;
var num2=Number(true);
console.log(num1,num2);
Number(值) 将数据转为数值型,返回数值
//将数据转为数值型,返回对象—— new Number(值)构造函数
var num3=new Number(null);//包装对象
console.log(num3,typeof num3);
Number.MAX_VALUE 最大值
//最大值——Number.MAX_VALUE
console.log(Number.MAX_VALUE);//最大值1.7976931348623157e+308
Number.MIN_VALUE 最小值,指小数点后面的位置非常多
//最小值——Number.MIN_VALUE
console.log(Number.MIN_VALUE);//最小值5e-324
toFixed() 取小数点后N位
//取小数点后N位——toFixed()
var num4=2*3.14*5;
console.log(num4.toFixed(2));//取小数点后2位
toString(n) 将数值转为字符串,同时可以设置进制,N就是设置的进制,2,8,16
//将数值转为字符串——toString(n)
var num6=13;
console.log(num6.toString(8));//转为8进制
06.Boolean对象
new Boolean(值) 将数据转为布尔型,返回对象
//new Boolean(值) 将数据转为布尔型,返回对象
var b3=new Boolean(3);
console.log(b3,typeof b3);
Boolean(值) 将数据转为布尔型,返回布尔型
//Boolean(值) 将数据转为布尔型,返回布尔型
// NaN 0 "" undefined null,只有这5个是false 其他都是true
var b1=true;
var b2=Boolean(NaN);
console.log(b1,b2);
!!值 转数据隐式转换为布尔型
// !!值 转数据隐式转换为布尔型
var b5=!!0;
console.log(b5);
07.匹配模式(掌握)
作用:用于查找,替换字符串
search(value) 用于查找满足条件的第一个下标,类似于indexOf,如果找不到返回-1。
//查找满足条件的第一个下标,找不到返回-1——search(value)
var str='把gudu当成晚餐que难以下咽,把heiye当作温暖QUE难以入眠';
console.log(str.search('gudu'));//
console.log(str.search('GUDU'));//-1 找不到
console.log(str.search(/que/));//放在正则表达式中
match(value) 用于查找满足条件的字符串,返回一个数组。
//查找满足条件的字符串,返回一个数组——match(value)
// i -> ignore 忽略大小写
// g -> global 全局查找
var str='把gudu当成晚餐que难以下咽,把heiye当作温暖QUE难以入眠';
console.log(str.match('heiye'));//返回一个数组
console.log(str.match(/que/i));//i-ignore忽略大小写
console.log(str.match(/que/g));//g-global 全局的查找
console.log(str.match(/que/ig));//全局忽略大小写查找
replace(value1,value2) 查找并替换,value1要查找的字符串,value2要替换的字符串。
//查找并替换——replace(value1,value2)
var str='把gudu当成晚餐que难以下咽,把heiye当作温暖QUE难以入眠';
console.log(str.replace(/heiye/ig,'baitian'));//替换
08.Math对象
用法:不需要创建,可以直接使用,
PI 取圆周率
//获取圆周率——PI
console.log(Math.PI);
abs() 取绝对值
//取绝对值——abs()
console.log(Math.abs(18-21));
max() 取最大值
//取一组数字的最大值——max()
console.log(Math.max(23,9,78,6,45));
min() 取最小值
//取一组数字的最小值——min()
console.log(Math.min(23,9,78,6,45));
pow() x的y次幂
//取x的y次幂——pow()
console.log(Math.pow(5,2));
ceil() 向上取整
//向上取整——ceil()
console.log(Math.ceil(5.02358));
floor() 向下取整
//向下取整——floor()
console.log(Math.floor(4.999));
round() 四舍五入取整
//四舍五入取整——round()
console.log(Math.round(4.51));
random() 取0-1之间的随机数 >=0 <1
//取随机0-1之间的随机数——random()
console.log(Math.random());
09.Date对象
用于对日期时间的存储和计算
1)创建Date对象
new Date()
//创建Date对象
//获取当前系统时间
var d1=new Date();
console.log(d1);//Tue Feb 25 2020 15:23:13 //手动输入的日期
var d2=new Date('2020/02/25');
console.log(d2);//默认为0时区的0点0分0秒
var d3=new Date('2020/02/25 10:36:50');
console.log(d3);//输入是什么时间显示就是什么时间
var d4=new Date(2020,1,25,10,36,50);//月份范围是0-11之间,所以1,是2月
console.log(d4); //获取数据库存储的是距离计算机元年的毫秒数
//默认为计算机元年时间为1970-1-1 0:0:0
//365*24*60*60*1000
var d5=new Date(49*365*24*60*60*1000);
console.log(d5);//2018/12/20
2)获取存储的日期时间
//获取存储的日期时间
var d=new Date('2020/02/25 10:56:30');
console.log(d.getFullYear());//获取年
console.log(d.getMonth()+1);//获取月份,月份范围是0-11之间,所以+1才能正常显示
console.log(d.getDate());//获取日
console.log(d.getHours());//获取小时,复数形式
console.log(d.getMinutes());//获取分钟
console.log(d.getSeconds());//获取秒数
console.log(d.getMilliseconds());//获取毫秒数
console.log(d.getDay());//获取星期,0-6,一个星期,星期日-星期六
console.log(d.getTime());//获取距离计算机元年的毫秒数 //练习:创建Date对象,保存当前的系统时间,打印‘今天是2020年2月25日 星期二 15:39’
var now=new Date();
var year=now.getFullYear();
var month=now.getMonth()+1;
var date=now.getDate();
var hours=now.getHours();
var minutes=now.getMinutes();
var day=now.getDay();
var arr=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"];
console.log(arr[day]);//把day作为下标放在数组中
//判断月份是否小于10,如果小于,增加前导0
if(month<10){
month='0'+month
}
console.log(
'今天是'+year+'年'+
month+'月'+
date+'日'+
arr[day]+' '
+hours+':'+
minutes
); //练习:计算距离2020年12月25日还有多少天?多少时?多少分?多少秒?
//创建两个对象,
var c=new Date('2020/12/25');//圣诞节日期
var now=new Date();//本机时间
//两个对象直接相减,获取相差的毫秒数
var d=c-now;
//相差的值转为秒
d=Math.floor(d/1000);
//计算相差天数
var day=Math.floor(d/(24*60*60));
//去除天数,计算相差的小时
var hour=d%(24*60*60);
hour=Math.floor(hour/3600);
//去除小时,计算相差的分钟
var minutes=d%3600;
var minutes=Math.floor(minutes/60);
//去除分钟,计算相差的秒钟
var second=d%60;
//打印最终结果
console.log(
'距离2020年的圣诞节还有'+
day+'天'+
hour+'小时'+
minutes+'分钟'+
second+'秒');
3)获取本地字符串格式
//获取本地字符串格式
var d=new Date();
console.log(d.toLocaleString());//获取日期时间字符串
console.log(d.toLocaleDateString());//获取日期字符串
console.log(d.toLocaleTimeString());//获取时间字符串
4)修改日期时间
//修改日期时间
var d1=new Date('2020/02/25 15:20:30');
d1.setFullYear(2018);//修改年份
d1.setMonth(8);//修改月份范围0-11,8是九
d1.setDate(3);
console.log(d1);
d1.setHours(10);
d1.setMinutes(36);
d1.setSeconds(50);
var d2=new Date('2020/02/25 15:20:30');
d2.setMilliseconds(1111111111);//修改距离计算机元年的毫秒数后,时间会发生变化
console.log(d1);
console.log(d2);
5)复制克隆Date对象
//克隆date对象
//原理在06.JS对象-1——02.函数对象——3)对象的存储
var d1=new Date('2020/02/25 15:20:30');
//var d2=d1;//复制d1的地址给d2
var d2=new Date(d1);//克隆了一个对象
d1.setFullYear(2019);
console.log(d1);//Mon Feb 25 2019 15:20:30
console.log(d2);//Tue Feb 25 2020 15:20:30 //练习:创建Date对象,保存员工的入职时间”2018/05/31”,3年合同到期,计算到期时间,合同到期前1个月,续签合同,
//如果是周末,提前到周五,如果是周六,那就提前一天,续签时间,打印出本地日期时间字符串格式
//入职时间
var d1=new Date('2018/05/31');
//到期时间
var d2=new Date(d1);
//三年后
d2.setFullYear(d2.getFullYear()+3);
//续签时间
var d3=new Date(d2);
//计算提前一个月
d3.setMonth(d3.getMonth()-1);
//判断周几
var day=d3.getDay();
if (day===6){
//如果是周六,提前一天
d3.setDate(d3.getDate()-1);
}else if(day===0){
//如果是周末,提前两天
d3.setDate(d3.getDate()-2);
}
console.log("入职时间是"+d1.toLocaleDateString());+
console.log("到期时间是"+d2.toLocaleDateString());+
console.log("续签时间是"+d3.toLocaleDateString());
10.错误处理
语法错误(SyntaxError)——错误的使用了中文符号,缺少括号
//错误处理
//js程序执行前,检查是否有语法错误
//语法错误——SyntaxError
var a=1;//标点符号使用错误
引用错误(ReferenceError)——使用了未声明的变量
//引用错误。使用未声明的变量——ReferenceError
console.log(a);//a没有声明
类型错误(TypeError)——错误的使用了小括号
//类型错误,错误的使用了符号——TypeError
var b=2;
b();//b不是一个函数,不能调用 var person={
ename:"tom"
}
person.ename();//person.ename不是一个函数
范围错误(RangeError)——参数超出了范围
//范围错误,参数超出了范围——RangeError
var arr=new Array(-3);
console.log(arr);
说明:语法错误出现后一行代码都不执行,其他错误出现后会影响后面代码的执行
自定义错误:throw '自定义的错误信息'
//自定义错误——throw '错误'
var num="abc";
//如果num不是数字,抛出一个自定义的错误
//先调用number转数值
if (isNaN(num)){//判断是否不是一个数字
throw '请提供一个数字';
}
自定义错误:try{ }catch(err){ },尝试执行,不阻止后续代码执行
Try{
//可能出现的错误(类型错误,引用错误,范围错误,自定义错误)
}catch(err){
//如果try中的代码报错,才会执行此处的代码,会把错误的信息交给err
}
//自定义错误——try{}catch(err){}尝试执行
//提供一个小于10的数字,
try{var num=11;
if (num>10){
throw"太大了";
}
}catch (err){//只有try中的代码报错,才会执行catch中的代码,错误信息交给err
console.log(err+":请输入一个小于10的数字");
}
07.JS对象-2的更多相关文章
- js对象私有变量公有变量问题
0 js对象私有变量公有变量问题5 小弟初学JS面向对象编程 现有一问题 请教各位大虾: Person=function (){ //私有变量定义 var name; vae age; var Ale ...
- jquery实现点击展开列表同时隐藏其他列表 js 对象操作 对象原型操作 把一个对象A赋值给另一个对象B 并且对象B 修改 不会影响 A对象
这篇文章主要介绍了jquery实现点击展开列表同时隐藏其他列表的方法,涉及jquery鼠标事件及节点的遍历与属性操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了jquery实现点击 ...
- JS对象继承篇
JS对象继承篇 ECMAScript只支持实现继承,而且其实现继承主要是依靠原型链来实现的 原型链 其基本思路是利用原型让一个引用类型继承另一个引用类型的属性和方法 function Person() ...
- JS 对象封装的常用方式
JS是一门面向对象语言,其对象是用prototype属性来模拟的,下面,来看看如何封装JS对象. 常规封装 function Person (name,age,sex){ this.name = na ...
- JSON字符串和JS对象之间的转换
JSON字符串和JS对象之间的转换 1 json字符串转换为js对象 1.1 标准json格式字符串转换为Js对象 JSON字符串 str JSON.parse(str) eval(str) eva ...
- js 对象的_proto_
js 对象呢,有个属性叫_proto_,以前没听说过,也没关注,最近看这个原型,就被迫知道了这个东西,js 这里面的东西,真是规定的很奇怪,具体为啥也不知道,就测试发现的,对象的_proto_属性,和 ...
- js对象/数组深度复制
今天碰到个问题,js对象.数组深度复制:之前有见过类似的,不过没有实现函数复制,今晚想了一下,实现代码如下: function clone(obj) { var a; if(obj instanceo ...
- js对象的深度克隆
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js对象详解
js自定义对象 一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在J ...
随机推荐
- 关于Xen
尝试了各种方法搭建xen,尝试过从xenserver入手,但似乎最近时间端不允许访问,感谢我的老师,叫我从kvm入手,暂时记下xen中种种的坑,以后有缘再战.欢迎交流
- MYGUI3.2改造——完善windows下的文字显示
MYGUI 3.2 是支持中文显示的——往“MyGUI_Fonts.xml”文件里添加上中文的编码范围即可,这个网上有很多. 能显示中文后,再添加中文的自动换行,这个网上有:http://blog.s ...
- # 团队项目-Beta冲刺2(七个小矮人)
团队项目-Beta冲刺2(七个小矮人) 一.格式描述 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScien ...
- Java容器解析系列(14) IdentityHashMap详解
IdentityHashMap,使用什么的跟HashMap相同,主要不同点在于: 数据结构:使用一个数组table来存储 key:value,table[2k] 为key, table[2k + 1] ...
- 机器学习-TensorFlow应用之classification和ROC curve
概述 前面几节讲的是linear regression的内容,这里咱们再讲一个非常常用的一种模型那就是classification,classification顾名思义就是分类的意思,在实际的情况是非 ...
- ios--->泛型
泛型 开发中使用场景: 1.限制集合中的类型,只能检测方法的调用,因为声明的泛型只能存在方法中 2.当一个类在声明的时候,某个对象的属性不确定,只有创建对象的时候才能确定,就可以使用泛型. 使用泛型的 ...
- xhsell关闭jupyter仍然运行的命令
nohup jupyter notebook & nohup 和 &都是linux的命令 1.& 当在前台运行某个作业时,终端被该作业占据:可以在命令后面加上& 实现后 ...
- CTF--HTTP服务--暴力破解
开门见山 1. 扫描靶机ip,发现PCS 192.168.1.103 2. 用nmap扫描靶机开放服务和服务版本 3. 再扫描全部信息 4. 用nikto探测敏感文件 5. 打开敏感网页发掘信息 6. ...
- c++产生非常量引用的初始值必须是左值
出现这种情况是因为调用函数的形参类型是 T&(T为某一类型),该类型与调用参数值传入不一致,比如函数中形参是int型,而传入实参是double,存在隐式类型转化,系统会自动产生临时变量tem ...
- SVN本地服务器搭建及在Eclipse中的应用
0.说明在程序开发的时候会有很多的版本,通过手动备份的方式不紧麻烦而且低效易出错.使用SVN来管理版本会方便很多,虽然有一些学习成本,但是学会使用之后会使得开发更加的高效.本文介绍如何在本地搭建svn ...