常用类,多了解了解
第二章 常用对象
2.1 Function对象
-
创建:
-
function 方法名称(参数列表){}; //例如 function fun(a,b){ alert(a+b); }; fun(3,4);//7 //这种方式是我们常用的方式
-
var 方法名 = function(参数列表){}; //例如 var fun2 = function(a,b){ alert(a+b); } fun2(3,4);//7 //也很常用
-
var fun = new Function(形式参数,方法体); //例如 var fun1 = new Function("a","b","alert(a);"); fun1(3,4);//3 //但是这种方式不好用,了解就行
-
-
方法
-
属性:
- length: 形参的个数
-
特点:
-
方法定义的时候,形参的类型不用写
-
方法名就是指向在堆区对象的一个函数指针,其他的懂得都懂
-
就算方法有参数,我们也可以不输入 , 少输入甚至多输入 ,剩下的值都是默认赋一个undefined,不会报错
-
var fun2 = function(a,b){ alert(a+b); } fun2(3); //NaN fun2(3,4,5)//7
-
-
在方法声明中,有一个隐藏的内置对象(数组), arguments ,封装所有的实际参数(实际你输入进去的参数,不管你定义的参数有几个)
-
利用这个特性我们可以搞一些事
-
//计算任意个数的和 function add() { var sum = 0; for(let i = 0; i<arguments.length; i++){ sum+=arguments[i]; alert(sum); } add(3,3,3,3,3,3);//18
-
-
返回值类型不用声明 ,直接return就完事了
-
-
调用:
方法名(参数);
2.2 Array对象
-
创建
-
var arr = new Array(元素列表);
-
var arr = new Array(默认长度);
-
var arr = [元素列表];
-
创建举例
-
var arr = new Array(1, 2, 3); var arr2 = new Array(5); var arr3 = [3, 4, 5, 6, 8]; document.write(arr + "<br>"); document.write(arr2 + "<br>"); document.write(arr3 + "<br>"); //运行结果 1,2,3 ,,,, 3,4,5,6,8 //我们直接输出arr的时候,输出的其实是字符串,相当于arr.join(",")
-
-
-
方法
-
concat() 连接两个或更多的数组,并返回结果。 join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。//常用 pop() 删除并返回数组的最后一个元素 push() 向数组的末尾添加一个或更多元素,并返回新的长度。//常用 reverse() 颠倒数组中元素的顺序。// shift() 删除并返回数组的第一个元素 slice() 从某个已有的数组返回选定的元素 sort() 对数组的元素进行排序 splice() 删除元素,并向数组添加新元素。 toSource() 返回该对象的源代码。 toString() 把数组转换为字符串,并返回结果。//输出的时候默认调用这个方法 toLocaleString() 把数组转换为本地数组,并返回结果。 unshift() 向数组的开头添加一个或更多元素,并返回新的长度。 valueOf() 返回数组对象的原始值
-
-
属性
- length: 数组的长度
-
特点
- 数组里面可以放任意元素,说实话感觉就是一个广义表
- 数组的长度是可以随时修改的 , 并不是确定的
2.3 date对象
-
创建
-
var myDate=new Date()
-
-
常用方法
-
toLocalString(): 返回当前date对象对应的时间本地字符串格式 getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
-
2.4 Math对象
-
创建
-
var xxx = Math.方法名();
-
-
常用方法
-
abs(x) 返回数的绝对值。 acos(x) 返回数的反余弦值。 asin(x) 返回数的反正弦值。 atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。 atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。 ceil(x) 对数进行上舍入。 cos(x) 返回数的余弦。 exp(x) 返回 e 的指数。 floor(x) 对数进行下舍入。 log(x) 返回数的自然对数(底为e)。 max(x,y) 返回 x 和 y 中的最高值。 min(x,y) 返回 x 和 y 中的最低值。 pow(x,y) 返回 x 的 y 次幂。 random() 返回 0 ~ 1 之间的随机数。 //[0,1) round(x) 把数四舍五入为最接近的整数。 sin(x) 返回数的正弦。 sqrt(x) 返回数的平方根。 tan(x) 返回角的正切。 toSource() 返回该对象的源代码。
-
-
特点
- 不用创建,直接使用类名.方法名()的格式调用就行了
-
属性
-
E 返回算术常量 e,即自然对数的底数(约等于2.718)。 LN2 返回 2 的自然对数(约等于0.693)。 LN10 返回 10 的自然对数(约等于2.302)。 LOG2E 返回以 2 为底的 e 的对数(约等于 1.414)。 LOG10E 返回以 10 为底的 e 的对数(约等于0.434)。 PI 返回圆周率(约等于3.14159)。 SQRT1_2 返回返回 2 的平方根的倒数(约等于 0.707)。 SQRT2 返回 2 的平方根(约等于 1.414)。
-
2.5 RegExp 正则表达式对象
正则表达式
定义字符串的组成规则
- 单个字符
- 如: [a] (表示字符只能是a) , [ab] (表示字符是a或b) , [a-zA-Z0-9_] (表示字符可以是a到z,A到Z以及下划线)这个单个字符也叫做单个单词字符
- 当然,我们有一些特殊符号来表达某些单个字符
- \d : 单个数字字符 [0-9]
- \w : 单个单词字符[a-zA-Z0-9_]
- 量词符号
?
: 表示出现0次或者1次*
: 表示出现0次或者多次+
: 表示出现1次或者多次{m,n}
: 表示 m<= 出现的次数 <= n- 这里如果m如果没有
{,n}
,那么意思就是最多n次 - 这里如果没有n,
{m,}
, 那么意思就是最少有m次
- 这里如果m如果没有
- 开始结束符号
^
: 开始符号$
: 结束符号
**举例: 要求单词的长度在6-12 ,且由单词字符组成 **
答案就是 \w{6,12}
我们在约束表单数据的时候经常会使用到
注意: 正则表达式是一个通用的规则,例如Java,c++里面也是可以用这些的
正则对象
-
创建
-
var reg = new RegExp('正则表达式');
-
var reg = /正则表达式/; //这个是常用方法
-
-
方法
-
//RegExp 对象方法 compile(regexp,modifier) 编译正则表达式。 exec(string) 检索字符串中指定的值。返回找到的值,并确定其位置。 test(string) 检索字符串中指定的值。返回 true 或 false //支持正则表达式的 String 对象的方法 //下面方法的参数都可以是regExp search 检索与正则表达式相匹配的值。 match 找到一个或多个正则表达式的匹配。 replace 替换与正则表达式匹配的子串。 split 把字符串分割为字符串数组。
-
例子:
// let reg = new RegExp("\\w{6,12}"); //注意这里是两个反斜线
let reg = /\w{6,12}/;
let aaa = "faslkdj";
let flag = reg.test(aaa);
alert(flag); //true
注意: 第一种写法,因为他包含在字符串里面,所以有可能**\w会被识别为转义字符,**,这不是我们想要的,因此,我们使用
\\
这个在字符串中就代表\
的意思,问题就解决了
2.6 Global对象
全局属性和函数可用于所有内建的 JavaScript 对象。
Global并不是这个对象的名称,全局对象实际上不是任何对象的属性,所以它没有名称
2.6.1 概述
-
特点: 这是一个全局对象,对象中封装的方法不需要对象就可以直接调用,直接方法名(),就可以直接调用
-
方法:
-
decodeURI() 解码某个编码的 URI。 decodeURIComponent() 解码一个编码的 URI 组件。 encodeURI() 把字符串编码为 URI。 encodeURIComponent() 把字符串编码为 URI 组件。 escape() 对字符串进行编码。 eval() 计算 JavaScript 字符串,并把它作为脚本代码来执行。 getClass() 返回一个 JavaObject 的 JavaClass。 isFinite() 检查某个值是否为有穷大的数。 isNaN() 检查某个值是否是数字。 Number() 把对象的值转换为数字。 parseFloat() 解析一个字符串并返回一个浮点数。 parseInt() 解析一个字符串并返回一个整数。 String() 把对象的值转换为字符串。 unescape() 对由 escape() 编码的字符串进行解码。
-
-
属性
-
Infinity 代表正的无穷大的数值。 java 代表 java.* 包层级的一个 JavaPackage。 NaN 指示某个值是不是数字值。 Packages 根 JavaPackage 对象。 undefined 指示未定义的值
-
2.6.2 URI编码
-
浏览器实际上是不支持上传中文的,所以说我们首先需要将我们的中文解码 , **然后用URI编码,**这样这些编码的数据就可以上传了,上传之后我们再解码,再编码,就完事了
-
如何编码的? 将每个字节(一个字节8bit)的数据转化为
%和两个16进制的数
-
例如:
let str = "我是你爹"; let encode = encodeURI(str); document.write(encode);//%E6%88%91%E6%98%AF%E4%BD%A0%E7%88%B9 //我们发现上面这个是12个字节,因此我们还可以得出,原来的汉字使用utf-8编码的 ///我们重新编码 document.write(decodeURI(encode));//我是你爹
-
2.6.3 数字相关
parseInt(string)
按位逐一判断每一个字符是否是数字,直到不是数字为止,将前面的数字部分转为number
例子:
alert(parseInt("534qwf"));//534
alert(parseInt("qwf3245")); //NaN
isNaN()
NaN 不能用算数运算符==
或===
来确认,它六亲不认,不论和谁比较都是false
NaN == NaN //false
所以我们要借助这个全局方法来看看这个类型是不是NaN
alert(isNaN(NaN));//true
eval()
将JS的字符串转为脚本执行
let code = "alert('我是你爹')";
eval(code);// 我是你爹