一. JavaScript 对象
1.function 对象
创建: function xxx(参数1,参数2,...参数n){
方法体;
}
调用: xxx(参数1,参数2,...参数n)
特点:a 方法定义时,形参类型不用写,返回值不用定,因为js中都是:var
b function定义出来的方法,本身就是一个对象,但是如果存在同名,则覆盖该方法
c 在JS中调用方法,只与方法名有关,和参数列表不无关,fn(), fn(a ,c,b);都能调用
d 方法声明中有一个隐藏的内置对象(数组) arguments,封装所有的参数,这也是 C 的原因
eg:
<script>
/**
* 定义一个 function 函数 来测试学习
* @param a
* @param b
* @returns {*}
*/
function add(a,b) { // A
var s = 0;
for (var i = 0; i < arguments.length; i++) {
s += arguments[i];
}
return s;
}
/*
调用函数
*/
var sum = add(4,5,6,5); // 这里调用add ,和这定义时候的参数没有关系
alert(sum);
alert(add.length); // 这里的,add 是指的 定义时的add 对象 A 处
</script>
2.Array 对象
创建 var arr1 = [1,"abc",2,7];
特点:a 元素数组是可变的,也就是,可以在一个数组中存不同类型的数据
b 长度可变,可以随数据的加入变化
3.Date 对象
创建 <script>
var date1 = new Date();
document.write(date1.toLocaleString());
document.write(date1.getTime().toString());
</script>
4.Math 对象
创建:直接调用:Math.xxx
<script>
document.write(Math.PI.toString()+"<br />");
document.write("-----------------------<br /> ");
document.write("向上取整"+Math.ceil(3.14)+"<br />");
document.write("向下取整"+Math.floor(3.14)+"<br />");
document.write(Math.random().toString()+"<br />");
document.write("----------产生一个[1,100]整数-------------<br /> ");
var number = Math.floor(Math.random()*100)+1;
document.write(number.toString()+"<br>")
</script>
5.RegExp 对象 正则表达式
创建: var regExp = new RegExp("正式表达式"); 不推荐,因为要配合转义字符 如:C
var regExp1 = /正式表达式/; 推荐使用:☆☆☆☆☆
方法:test(被测试对象);
<script>
var regExp = new RegExp("^\\w{6,12}$"); //C
// 以单词字符开头,以单词字符结尾,长度在 6到12 之间 单词字符:a-zA-Z0-9
var regExp2 =/^\w{6,12}$/;
var strName ="zhanghai";
var flag = regExp.test(strName); //test的调用
alert(flag);
document.write(flag.toString());
</script>
6.Global 对象:全局对象,这个里面封装的方法直接调用就可以了,方法名()
<script>
//编码:Http 协议中,不支持传输中文,就要对中文进行转码
var strUserName = "苦咖菲";
// encodeURI() 转码函数,decodeURI() 解码函数
var encodeName = encodeURI(strUserName);
document.write("中文为:" + strUserName + "<br>");
document.write("encodeURIrg后为:" + encodeName + "<br>");
document.write("decodeURI解码后:" + decodeURI(encodeName) + "<br>")
//增强 转码,解码函数 encodeURIComponent() 转码的字符更多,//: 都能转
var uri = "http://www.abcdefg.com?usrname=苦咖菲";
var encodeURI1 = encodeURI(uri);
document.write(encodeURI1 + "<br>"); //http://www.abcdefg.com?usrname=%E8% 8B%A6%E5%92%96%E8%8F%B2
var encodeURIComponent1 = encodeURIComponent(uri);
document.write(encodeURIComponent1 + "<br>"); // http%3A%2F%2Fwww.abcdefg.com%3Fusrname%3D%E8%8B%A6%E5%92%96%E8%8F%B2
//parseInt() 把字符串转成数值,把遇到不是非数值的之前的所有空字符转数值
var strTest = "123abc";
var strTestB = "a123abc";
var number = parseInt(strTest); // 123
var number2 = parseInt(strTestB); // NaN
document.write(number2.toString() + "<br>");
var num = number + 1;
document.write(num + "<br>");
// isNaN() 判断一个值 是不是NaN NaN 不能用 == 来判断,必须用这个函数来判断
document.write((number2 == NaN) + "<br>"); // false
document.write(isNaN(number2)+"<br>"); //true
//eval() 将字符串转成js 代码来执行
var strA ="document.write(123)";
document.write(strA); // document.write(123)
eval(strA); // 123 按js代码执行了
</script>