JavaScript中的一些数据都是对象,对象其实是属性与方法的包装。并不像其余相似Swift/OC/Java类的面向对象语言,在目前JavaScript的实现中并无类的概念,开发者有以下两种方式来进行对象的构造:javascript
//建立对象的方式有两种 能够直接建立对象的实例 var obj = new Object(); obj.name = "jaki"; obj.age = 25; console.log(obj); //也可使用大括号才建立对象 var obj2 = { name:"jaki", age:25, show:function(){ console.log(this.name+"--"+this.age); } }; obj2.show();
回顾Swift语言的对象建立方法,是经过类调用构造方法,所以,在JavaScript中,也能够经过函数来模拟类的功能,此类的函数能够称为构造函数,示例以下:html
//模拟类 构造方法 function Person(name,age){ this.name = name; this.age = age; this.show = function(){ console.log(this.name+"--"+this.age); }; } var p = new Person("jaki",25); p.show();
JavaScript中的对象呗构造出来后,依然能够为其动态添加属性或方法,示例以下:前端
//模拟类 构造方法 function Person(name,age){ this.name = name; this.age = age; this.show = function(){ console.log(this.name+"--"+this.age); }; } var p = new Person("jaki",25); p.show(); //已经构造的对象 也能够增长属性 p.phone = "1111" console.log(p.phone);
在JavaScript中,数值是一种基本数据类型,可是Number是数值对象,能够理解为对数值的包装。而且JavaScript中的数值只有一种类型,能够建立整数,也能够建立小数,以下:java
//数字对象 //JS中只有一种数字对象Number //能够描述整数 也能够描述小数 var c = 10; var c1 = 3.14;
也支持使用科学计数法来对数值进行描述,示例以下:正则表达式
//也可使用科学计数法来计数 var c2 = 1.2e5; var c3 = 123e-5; console.log(c2,c3);
在JavaScript中,使用前缀0来描述八进制数值,使用前缀0x来描述十六进行的数值,示例以下:数组
//使用0为前缀 约定为8进制 var c4 = 017; console.log(c4); //十进制15 //使用0x前缀约定为十六进制 var c5 = 0x11; console.log(c5); //十进制17
须要注意:和其余语言不一样,JavaScript中不能随意的数值前面加0,不然会被认为是八进制计数。dom
关于Number,若是使用new来进行构造,会返回一直数值对象,其中能够穿入一个参数做为数值对象的原始值,若是将Number()做为函数来使用,则会直接返回一个具体的数值,示例以下:函数
//Number能够做为构造方法来使用 传入的参数为要构造的Number值 var objc = new Number(15); console.log(objc); //Number也能够做为函数来使用 这时他将返回数值或者NaN var objc2 = Number(2); console.log(objc2); //2 var objc3 = Number("c"); console.log(objc3);//NaN
Number中内置了一些经常使用的属性与方法,示例以下:学习
//经常使用内置属性 //返回可表示的最大值 console.log(Number.MAX_VALUE); //返回可表示的最小值 console.log(Number.MIN_VALUE); //返回非数字值 console.log(Number.NaN); //表示负无穷大 发生溢出时 会返回 console.log(Number.NEGATIVE_INFINITY); //表示正无穷大 发生溢出时 会返回 console.log(Number.POSITIVE_INFINITY);
对象实例的经常使用方法:字体
//经常使用内置方法 var c6 = 100; //将数据转换成字符串 console.log(c6.toString()); //toString()方法中能够传入一个参数 默认为10进制 可选2-36 console.log(c6.toString(36)); //toLocaleString()方法返回本地环境格式的字符串 通常10进制 console.log(c6.toLocaleString()); var c7 = 3.1415926; //toFixed()方法用于将数字转换成字符串 能够指定小数位数 会四舍五入 console.log(c7.toFixed(3)); //将数值转换成指数计数法 console.log(c7.toExponential(1)); //toPrecision()方法能够将数值转换为指定位数 console.log(c7.toPrecision(4)); //返回原始数值 console.log(c7.valueOf());
须要注意,对于进制转换,toString()方法支持2-36进制,这很好理解,数字0-9加上26个英文字母,最多能够表达36个数字。
JavaScript语言中的字符串对象封装了大量的操做方法,须要注意,JavaScript中的String对象是不可变的,全部对字符串的操做都是返回一个新的字符串。String对象中最经常使用的一个属性为length属性,这个属性能够获取字符串的长度,示例以下:
//字符串对象 var str1 = new String("HelloWorld"); var str2 = String("HELLO"); //length属性能够获取字符串的长度 console.log(str1.length); //10
String对象中封装的一些经常使用方法示例以下:
//静态方法 //经过Unicode值建立字符 var str3 = String.fromCharCode(100,102,103,104);//dfgh console.log(str3); //建立html锚点 console.log(str1.anchor("label")); //<a name="label">HelloWorld</a> //嵌入big标签中 console.log(str1.big());//<big>HelloWorld</big> //嵌入small标签 console.log(str1.small());//<small>HelloWorld</small> //嵌入blick标签中 console.log(str1.blink());//<blink>HelloWorld</blink> //嵌入b标签中 console.log(str1.bold());//<b>HelloWorld</b> //获取指定位置的字符 从0开始 console.log(str1.charAt(1));//e //获取指定位置字符的unicode码 console.log(str1.charCodeAt(1));//101 //字符串拼接 console.log(str1.concat("1","2","3"));//HelloWorld123 //嵌入打印模式 console.log(str1.fixed());//<tt>HelloWorld</tt> //指定HTML字体颜色 console.log(str1.fontcolor('red'));//<font color="red">HelloWorld</font> //指定HTML字体大小 console.log(str1.fontsize(24));//<font size="24">HelloWorld</font> //indexOf()方法用于检查某个子串在父串中第一次出现的位置,其中第1个参数为要检索的子串,第2个参数为从某个位置开始检索 console.log(str1.indexOf('l',3));//3 注意,若是没有检索到 会返回-1 //嵌入i标签中 console.log(str1.italics());//<i>HelloWorld</i> //从后往前检索 同indexOf()方法 console.log(str1.lastIndexOf("l",10));//8 //嵌入a标签中 console.log(str1.link("www.baidu.com"));//<a href="www.baidu.com">HelloWorld</a> //进行字符串比较 若是str1<参数 则返回-1 若是大于 则返回1 相等 则返回0 console.log(str1.localeCompare("Z"));//-1 //match()方法用于字符串检索 其将返回一个检索结果对象 //match()方法的参数能够为 //字符串:要检索的字符串 //正则表达式:要检索的正则表达式 console.log(str1.match("ell"));//[ 'ell', index: 1, input: 'HelloWorld' ] console.log(str1.match(/ell/)); //进行字符串替换 第1个参数为要被替换的字符或者正则 第2个参数为替换成的字符串 console.log(str1.replace("Hello","hahaha"));//hahahaWorld //进行子串匹配 能够是字符串参数也能够是正则 这个方法不能指定检索起点 console.log(str1.search("World"));//5 //进行字符串截取 console.log(str1.slice(0,5));//Hello //进行字符串分隔操做 //第一个参数:分隔标准 能够会字符串或者正则 //第二个参数:返回数组中元素的最大个数 console.log(str1.split('o',10));//[ 'Hell', 'W', 'rld' ] //嵌入strike标签中 console.log(str1.strike());//<strike>HelloWorld</strike> //嵌入sub标签 console.log(str1.sub());//<sub>HelloWorld</sub> //进行字符串截取 第1个参数为起始位置 第2个参数为须要截取的长度 console.log(str1.substr(0,5));//Hello //进行字符串截取 获取两个索引之间的字符 console.log(str1.substring(5,10));//World //嵌入sup标签中 console.log(str1.sup());//<sup>HelloWorld</sup> //所有转换为小写字母 console.log(str1.toLocaleLowerCase()); console.log(str1.toLowerCase()); //所有转换为大写字母 console.log(str1.toLocaleUpperCase()); console.log(str1.toUpperCase()); //返回字符串对象的原始值 console.log(str1.valueOf());
JavaScript中提供丰富的日期处理方法,示例以下:
//日期对象date //建立当前时间对象 var date1 = new Date(); console.log(date1);//2017-01-04T02:00:05.617Z //返回当前的日期 var date2 = Date(); console.log(date2);//Wed Jan 04 2017 10:04:56 GMT+0800 (CST) //获取时间对象是一个月中的第几天 1-31之间 必须是Date对象调用 console.log(date1.getDate()); //4 //获取时间对象是一周中的第几天 周日为0 console.log(date1.getDay()); //3 //返回月份 注意 这个会返回0-11之间 console.log(date1.getMonth()); //0 //获取完整的年 console.log(date1.getFullYear()); //2017 //获取小时0-23 console.log(date1.getHours()); //获取分钟0-59 console.log(date1.getMinutes()); //获取秒0-59 console.log(date1.getSeconds()); //获取毫秒0-999 console.log(date1.getMilliseconds()); //获取时间戳 从1970年1月1日 起 console.log(date1.getTime()); //返回本地时间与格林威治时间的分钟差 console.log(date1.getTimezoneOffset());//-480 //返回世界时间中 一个月中的第几天 1-31 console.log(date1.getUTCDate()); //返回世界时间中 一周中的第几天 周日为0 console.log(date1.getUTCDay()); //返回世界时间中的月份 0-11 console.log(date1.getUTCMonth()); //返回世界时间中的年 console.log(date1.getUTCFullYear()); //返回世界时间中小时 console.log(date1.getUTCHours()); //返回世界时间中的分钟 console.log(date1.getUTCMinutes()); //返回世界时间中的秒 console.log(date1.getUTCSeconds()); //返回世界时间中的毫秒 console.log(date1.getUTCMilliseconds()); //静态方法 返回从1970.1.1到指定日期间的毫秒 console.log(Date.parse(date1)); //设置日期 1个月中的某一天 1-31 date1.setDate(1); //设置月份 date1.setMonth(2); //设置年份 date1.setFullYear(2011); //设置时 date1.setHours(10); //设置分 date1.setMinutes(20); //设置秒 date1.setSeconds(23); //设置毫秒 date1.setMilliseconds(100); console.log(date1); //经过时间戳设置date对象 date1.setTime(1483599203000); console.log(date1); //下面这些方法设置时间时间 date1.setUTCDate(3); date1.setUTCMonth(10); date1.setUTCFullYear(2020); date1.setUTCHours(22); date1.setUTCMinutes(22); date1.setUTCSeconds(34); date1.setUTCMilliseconds(112); console.log(date1); //转换为本地时间字符串 console.log(date1.toString());//Wed Nov 04 2020 06:22:34 GMT+0800 (CST) //转换时间部分 console.log(date1.toTimeString());//06:22:34 GMT+0800 (CST) //转换日期部分 console.log(date1.toDateString());//Wed Nov 04 2020 //转换为世界时间字符串 console.log(date1.toUTCString());//Tue, 03 Nov 2020 22:22:34 GMT //转换成本地格式的字符串 console.log(date1.toLocaleString());//11/4/2020, 6:22:34 AM //只转换本地格式的时间 console.log(date1.toLocaleTimeString());//6:22:34 AM //只转换日期 console.log(date1.toLocaleDateString());//11/4/2020 //返回从1970.1.1到指定时间的时间戳 //参数含义为 年 月 日 时 分 秒 毫秒 console.log(Date.UTC(2012,1,1,1,1,1,1));
数组对象用于存放一组数据,JavaScript语言并不像Swift语言那样强调类型,所以数组中存放的元素类型十分自由,JavaScript中数组的相关方法示例以下:
//有三种方式进行数组的构造 //构造空数组 var array1 = new Array(); //构造指定个数元素的数组 var array2 = new Array(5); //构造初始数组 var array3 = new Array(1,2,3,4) //length属性能够获取数组元素个数 console.log(array3.length);//4 //进行数组链接 console.log(array3.concat([5,6],['q','w'])); //将数组中全部元素以指定分隔符进行拼接为字符串 console.log(array3.join("-")); //删除数组中的最后一个元素 array3.pop(); console.log(array3); //向数组中添加一个元素 array3.push(5); console.log(array3); //进行数组颠倒 array3.reverse(); console.log(array3); //删除数组中的第一个参数 array3.shift(); console.log(array3); //向数组开头插入一些元素 array3.unshift(1,1,1); console.log(array3); //对数组元素进行排序 array3.sort(function(a,b){ if (a>b) { return true; }else{ return false; } }); console.log(array3); //删除数组中的元素 并插入其余元素 //第1个参数为参数元素的位置 //第2个参数为删除元素的个数 //以后能够有任意个参数,做为插入元素 array3.splice(0,2,'c',5); console.log(array3); //将数组转换为字符串 使用逗号拼接 console.log(array3.toString()); console.log(array3.toLocaleString());
须要注意,数组的排序方法sort()中须要传入一个排序函数,这个函数中会传入两个参数,分别描述数组中相邻的两个元素,若是须要交换位置,返回true便可,不然返回false便可。另外,数组的toString()方法与join()方法做用类似,不一样的是join()方法更加自由,开发者能够经过参数决定进行拼接的方式,若是不传参数,则默认也会以逗号进行分割拼接。
Boolean对象用来描述逻辑值,JavaScript中的Boolean对象能够理解为对布尔值的一种包装,当使用构造函数来进行Boolean对象的建立时,若是不传参数,默认会构造false值的对象包装,以下:
var b1 = new Boolean(); console.log(b1);//[Boolean: false]
若是将Boolean()当作函数来使用,将会返回一个基本布尔值,以下:
var b2 = Boolean(); console.log(b2);//false
在建立布尔值时,下面这些传参都将建立包装false的布尔对象:
var myBoolean=new Boolean(); var myBoolean=new Boolean(0); var myBoolean=new Boolean(null); var myBoolean=new Boolean(""); var myBoolean=new Boolean(false); var myBoolean=new Boolean(NaN); var myBoolean=new Boolean(undefined);
除了上面所列举的参数状况外,其他的都将构造true包装对象。
JavaScript中还内置了一个Math数学对象,这个对象中封装了许多数学中经常使用的常数和算术方法,示例以下:
//Math对象 //天然对数e console.log(Math.E);//2.718281828459045 //2的天然对数 console.log(Math.LN2);//0.6931471805599453 //10的天然对数 console.log(Math.LN10);//2.302585092994046 //以2为底e的对数 console.log(Math.LOG2E);//1.4426950408889634 //以10为底e的对数 console.log(Math.LOG10E);//0.4342944819032518 //圆周率 console.log(Math.PI);//3.141592653589793 //根号2的倒数 console.log(Math.SQRT1_2);//0.7071067811865476 //根号2 console.log(Math.SQRT2);//1.4142135623730951 //求绝对值函数 console.log(Math.abs(-5));//5 //求反余弦函数 console.log(Math.acos(0.5)); //求反正弦函数 console.log(Math.asin(0.5)); //求反正切函数 console.log(Math.atan(1)); //求到(x,y)点的角度 console.log(Math.atan2(1,0)); //进行向上舍入 console.log(Math.ceil(1.3));//2 //进行向下舍入 console.log(Math.floor(1.3));//1 //求天然对数 console.log(Math.log(10));//2.302585092994046 //返回最大值 console.log(Math.max(1,2));//2 //返回最小值 console.log(Math.min(1,2));//1 //求幂函数 console.log(Math.pow(10,2));//100 //取0-1之间的随机数 console.log(Math.random()); //进行四舍五入 console.log(Math.round(1.3));//1 //求正弦值 console.log(Math.sin(2)); //求余弦值 console.log(Math.cos(2)); //求正切值 console.log(Math.tan(1));
前端学习新人,有志同道合的朋友,欢迎交流与指导,QQ群:541458536