46-js对象 就是用类来创建对象

什么是属性 什么是方法   

对象名.属性值=xx;          对象名.方法名();       有没有括号就是区别

2. 基本对象:
            1. Function:函数(方法)对象   

js中function 方法是对象  所以想的是java中对象的创建方法 而不是java中方法的创建方法
                1. 创建:
                    1. var fun = new Function(形式参数列表,方法体);  //忘掉吧
                    2. 
                        function 方法名称(形式参数列表){
                            方法体
                        }

                    3. 
                       var 方法名 = function(形式参数列表){
                            方法体

                       }
                2. 方法:

                3. 方法对象的属性:
                    length:代表形参的个数
                4. 特点:
                    1. 方法定义是,形参的类型不用写,返回值类型也不写。
                    2. 方法是一个对象,如果定义名称相同的方法,后面定义的会把前面定义的会覆盖
                    3. 在JS中,方法的调用只与方法的名称有关,和参数列表无关
                    4. 在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数
                5. 调用:
                    方法名称(实际参数列表);

注意这里的arguments对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>function对象</title>
    <script>
        //Function:函数(方法)对象
        /*
           1. 创建:
                        function 方法名称(形式参数列表){
                            方法体
                        }
  
                        var 方法名 = function(形式参数列表){
                            方法体
                       }
                2. 方法:

                3. 属性:
                    length:代表形参的个数
                4. 特点:
                    1. 方法定义是,形参的类型不用写,返回值类型也不写。
                    2. 方法是一个对象,如果定义名称相同的方法,会覆盖
                    3. 在JS中,方法的调用只与方法的名称有关,和参数列表无关
                    4. 在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数
                5. 调用:
                    方法名称(实际参数列表);
         */
        function fun2(a, b) { //方法定义时参数列表的参数类型不写因为都是var
            alert(a + b);
        }
        fun2(3,4);//弹出7

        alert(fun2.length); //属性:length:代表形参的个数 参数的个数为2 这里弹出2


        function fun3(a,b){
            alert(a);
        }
        fun3(1,2); //弹出1
        fun3(1);//java中这样写会报错 但是js这里传一个参数也可以正常弹出

        function fun4(a,b){
            alert(b);
        }
        fun4(1,2); //弹出2
        fun4(1);//没有传参数b 方法体时alert b所以弹出undefined

        function fun5(a,b){
            alert(a);
        }
        fun5();//没有传参数 弹出undefined

        function fun6(a,b){
            alert(a);
            alert(b);
        }
        fun6(1,1,1); //传三个参数也行  弹出 1  1

        //求几个数的和
        function  add(a,b){ //返回值类型也是不用写
            return a+b;
        }
        var sum=add(1,2);
        alert(sum);// 弹出3


        //求任意个数的和
        function add2() { //不定义参数
            alert(arguments[0])      //arguments内置对象相当于java中的数组
            alert(arguments[1])
        }
         add2(1,3);// 弹出 1  3

        function add3() {
             var sum=0;
             for (var i=0;i<arguments.length;i++){    //注意数组的[]从0开始到n-1
                 sum+=arguments[i];
             }
             return sum
        }
        var sum=add3(1,2,3);
        alert(sum); //弹出6
    </script>
</head>
<body>

</body>
</html>


            
            2. Array:数组对象
                1. 创建:
                    1. var arr = new Array(元素列表);
                    2. var arr = new Array(默认长度); 注意是小括号
                    3. var arr = [元素列表];  注意是中括号
                2. 方法
                    join(参数):将数组中的元素按照指定的分隔符拼接为字符串
                    push()    向数组的末尾添加一个或更多元素,并返回新的长度。
注意这里的返回值
                3. 数组对象的属性
                    length:数组的长度
                4. 特点:
                    1. JS中,数组元素的类型可变的。
                    2. JS中,数组长度可变

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>array对象</title>
    <script>
        /*
        array是数组对象
            1. 创建:
                    1. var arr = new Array(元素列表);
                    2. var arr = new Array(默认长度);
                    3. var arr = [元素列表];
                2. 方法
                    join(参数):将数组中的元素按照指定的分隔符拼接为字符串
                    push()    向数组的末尾添加一个或更多元素,并返回新的长度。
                3. 属性
                    length:数组的长度
                4. 特点:
                    1. JS中,数组元素的类型可变的。
                    2. JS中,数组长度可变的。
         */

        var arr1= new Array(1,2,3);
        var arr2=new Array(3); //长度为3 这里要注意不是数组里有一个元素而是数组的长度是3
        var arr3=[2,3,4];
        var arr4=new Array(); //空数组

        document.write(arr1+"<br>");
        document.write(arr2+"<br>");//2个逗号 三个长度
        document.write(arr3+"<br>");
        document.write(arr4+"<br>");


        var arr5=new Array(1,"abc",true);

        document.write(arr5+"<br>");//1,"abc",true
        document.write(arr5[0]+"<br>");//1  看集合中的元素
        document.write(arr5[3]+"<br>");//undefined 数组会自动扩容4个元素
        document.write(arr5[10]+"<br>");//undefined
        arr5[10]="tt";
        document.write(arr5+"<br>");//1,abc,true,,,,,,,,tt
        document.write(arr5.length+"<br>");//11

        document.write(arr5.join()+"<br>");// join(参数):将数组中的元素按照指定的分隔符拼接为字符串 1,abc,true,,,,,,,,tt
        document.write(arr5.join("--")+"<br>");//注意这里要加引号 1--abc--true----------------tt
       arr5.push(11);//相当于java中的add
        document.write(arr5+"<br>");//1,abc,true,,,,,,,,tt,11
    </script>
</head>
<body>

</body>
</html>


            3. Boolean   是一个基本数据类型的包装类
            4. Date:日期对象
                1. 创建:
                    var date = new Date();

                2. 方法:
                    toLocaleString():返回当前date对象对应的时间本地字符串格式
                    getTime():获取毫秒值。返回当前如期对象描述的时间到1970年1月1日零点的毫秒值差

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>date日期对象</title>
    <script>
        /*
                1. 创建:
                    var date = new Date();

                2. 方法:
                    toLocaleString():返回当前date对象对应的时间本地字符串格式
                    getTime():获取毫秒值。返回当前如期对象描述的时间到1970年1月1日零点的毫秒值差
         */
        var date =new Date();
        document.write(date+"<br>");//Thu Dec 02 2021 19:53:16 GMT+0800 (中国标准时间)
        document.write(date.toLocaleDateString()+"<br>");//2021/12/2
        document.write(date.getTime()+"<br>");//1638446375125  可以作为时间戳使用
    </script>
</head>
<body>

</body>
</html>


            5. Math:数学对象
                1. 创建:
                    * 特点:Math对象不用创建,直接使用。  Math.方法名();

                2. 方法:
                    random():返回 0 ~ 1 之间的随机数。 含0不含1
                    ceil(x):对数进行上取整。
                    floor(x):对数进行下取整。
                    round(x):把数四舍五入为最接近的整数。

                3. 属性:
                    PI圆周率

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Math数学对象</title>
    <script>
        /*
        java中math是个工具类 直接点来引用
           1. 创建:
                    * 特点:Math对象不用创建,直接使用。  Math.方法名();

                2. 方法:
                    random():返回 0 ~ 1 之间的随机数。 含0不含1
                    ceil(x):对数进行上舍入。
                    floor(x):对数进行下舍入。
                    round(x):把数四舍五入为最接近的整数。
                3. 属性:
                    PI
         */
        document.write(Math.PI+"<br>");// 3.141592653589793
        document.write(Math.random()+"<br>");//返回 0 ~ 1 之间的随机数。 含0不含1
        document.write(Math.round(3.14)+"<br>");//round(x):把数四舍五入为最接近的整数。 3
        document.write(Math.ceil(3.14)+"<br>");//  ceil(x):对数进行上舍入。 输出4
        document.write(Math.floor(3.14)+"<br>");//  floor(x):对数进行下舍入。 3

        //取1-100之间的随机整数
        //1.Math.random();产生随机数,范围(0,1]
        //2.乘以100 得到(0,99.99】小数
        //3.取整得到【0,99】整数
        //4.再+1得到【1,100】整数
        document.write("<hr>");
        document.write(Math.round(Math.random()*100)+1);

    </script>
</head>
<body>

</body>
</html>


            6. Number    基本数据类型的包装类
            7. String  基本数据类型的包装类
            8. RegExp:正则表达式对象

意思是单词字符组成 长度6-12     \w{6,12}
                1. 正则表达式RegExp:定义字符串的组成规则。  js对表单的校验依赖于正则表达式

所有语言定义正则表达式都是这样的
                    1. 单个字符:[]
                        如: [a] [ab] [a-zA-Z0-9_]
                        * 特殊符号代表特殊含义的单个字符:
                            \d:单个数字字符 [0-9]       \d就代表【0-9】
                            \w:单个单词字符[a-zA-Z0-9_]     \w:【a-zA-Z0-9_]  注意这里还有下划线_
                    2. 量词符号:
                        ?:表示出现0次或1次
                        *:表示出现0次或多次
                        +:出现1次或多次        
例如 \w*表示字符串规则是 ---单词字符出现0次或多次      
                    {m,n}:表示 m<= 数量 <= n   :   数量在 m 到n之间 注意这里是个大括号{}  而且有等号
                            * m如果缺省: {,n}:最多n次  小于等于n
                            * n如果缺省:{m,} 最少m次   大于等于m

                    3. 开始结束符号
                        * ^:开始
                        * $:结束
                2. 正则对象:
                    1. 创建
                        1. var reg = new RegExp("正则表达式");
                        2. var reg = /正则表达式/;
                    2. 方法    
                        1. test(参数):验证指定的字符串是否符合正则定义的规范
   符合true 不符合false

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>RegExp对象</title>
    <script>
        /*
        RegExp:正则表达式对象
                        1. 正则表达式:定义字符串的组成规则。
                            1. 单个字符:[]
                                如: [a] [ab] [a-zA-Z0-9_]
                                * 特殊符号代表特殊含义的单个字符:
                                    \d:单个数字字符 [0-9]
                                    \w:单个单词字符[a-zA-Z0-9_]
                            2. 量词符号:
                                ?:表示出现0次或1次
                                *:表示出现0次或多次
                                +:出现1次或多次
                                        例如 \w*表示单词字符出现1次或多次
                                {m,n}:表示 m<= 数量 <= n
                                    * m如果缺省: {,n}:最多n次
                                    * n如果缺省:{m,} 最少m次
                            3. 开始结束符号
                                * ^:开始
                                * $:结束
                        2. 正则对象:
                            1. 创建
                                1. var reg = new RegExp("正则表达式");
                                2. var reg = /正则表达式/;
                            2. 方法    
                                1. test(参数):验证指定的字符串是否符合正则定义的规范    
         */
        var reg1 = new RegExp("^\\w{6,12}$");//加了^ $意思是该定义的字符串以单词字符开头以单词字符结尾
        alert(reg1);//   输出/^\w{6,12}$/
        var reg2 = /^\w{6,12}$/;
        alert(reg2);//输出 /^\w{6,12}$/

        //  1. test(参数):验证指定的字符串是否符合正则定义的规范  符合弹出true 不符合弹出false 
        var username ="zhangsan";
        var flag=reg2.test(username);//判断是否符合reg2的正则表达式规则
        alert(flag); //弹出true

        var str2 ="zhangsanhhhhhhhhhh";
        var flag2=reg2.test(str2);
        alert(flag2);//字符串长度不在6-12之间,弹出false
    </script>
</head>
<body>

</body>
</html>

注意:

var reg1 = new RegExp("^\\w{6,12}$");  两根反斜线   因为括号里面是用字符串形式定义的

            9. Global

什么叫URL编码  就是我们在做数据传输时 我们是通过一些传输协议的比如http 不支持中文 所以发送到服务器端需要用URL编码
                1. 特点:全局对象,这个Global中封装的方法不需要对象就可以直接调用。  

       调用方法:   方法名();  
                2. 方法: 注意这些方法的调用都是encode(参数);   isNaN(参数);  parseInt(参数);这种形式  要注意看
                    encodeURI():url编码
                    decodeURI():url解码

                    encodeURIComponent():url编码,编码的字符更多
                    decodeURIComponent():url解码

                    parseInt():将字符串转为数字   与直接字符串加+ 转数字不同 如果+123ab 输出NaN 但是parseInt输出123 parseInt会逐位判断
                   * 逐一判断每一个字符是否是数字,直到不是数字为止,将前边数字部分转为number
                    isNaN():判断一个值是否是NaN
                        * NaN六亲不认,连自己都不认。NaN参与的==比较全部问false

                    eval():讲 JavaScript 字符串,并把它作为脚本代码来执行。
                3. URL编码
                   传智播客 =  %E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2

  每一个字节加一个百分号  这里是utf-8  一个汉字三个字节 四个字12个字节12个%

 gbk编码一个汉字两个字节  utf-8编码一个汉字三个字节    

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>RegExp对象</title>
    <script>
        /*
         Global
                1. 特点:全局对象,这个Global中封装的方法不需要对象就可以直接调用。  

       调用方法:   方法名();  
                2. 方法:
                    encodeURI():url编码
                    decodeURI():url解码

                    encodeURIComponent():url编码,编码的字符更多
                    decodeURIComponent():url解码,解码的字符更多

                    parseInt():将字符串转为数字
                        * 逐一判断每一个字符是否是数字,直到不是数字为止,将前边数字部分转为number
                    isNaN():判断一个值是否是NaN
                        为什么要有这个方法而不直接==来比较
                        * NaN六亲不认,连自己都不认。NaN参与的==比较 全部问false

                    eval():将 JavaScript 字符串,并把它作为脚本代码来执行。 :
                3. URL编码  服务器可能不认中文 所以使用这种url编码
                   传智播客 =  %E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2
    * BOM
    * DOM
         */
        var str ="传智播客";
        var encode1= encodeURI(str);  //这里是方法调用但是不用对象 是因为Global是全局对象
        document.write(encode1+"<br>"); //%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2    utf-8格式的编码
        var decode1 = decodeURI(encode1);
        document.write(decode1+"<br>");//传智播客

        var str2 ="传智播客";
        var encode2=encodeURIComponent(str2);
        document.write(encode2+"<br>");//%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2  这个方法编码的字符更多

        var str3="http://wwww.baidu.com?wd=传智播客";  // encodeURI 和 encodeURIComponent的区别
        var encode3=encodeURI(str3);
        document.write(encode3+"<br>");//http://wwww.baidu.com?wd=%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2
        var encode4=encodeURIComponent(str3);
        document.write(encode4+"<br>")//http%3A%2F%2Fwwww.baidu.com%3Fwd%3D%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2 注意这里冒号 //都编码了 编码的字符更多一些

        //  parseInt():将字符串转为数字   * 逐一判断每一个字符是否是数字,直到不是数字为止,将前边数字部分转为number
        var str4="123";
        var number=parseInt(str4);
       document.write(number+"<br>") ;//123

        var str5="234ab";
        var number2=parseInt(str5);
        document.write(number2+"<br>") ;//234

        var str6="a234ab";
        var number3=parseInt(str6);
        document.write(number3+"<br>") ;//NaN  逐一判断每一个字符是否是数字,直到不是数字为止,将前边数字部分转为number 注意是不是数字的前端转成数字

        //NaN参与的==比较 全部问false
        var a ="acb";
        document.write(a==NaN+"<br>"); //false
        var b ="NaN";
        document.write(b==NaN+"<br>");//false
        //所以通过方法isNaN();来判断
        document.write(isNaN(b)+"<br>"); //true

        // eval():将 JavaScript 字符串,并把它作为脚本代码来执行。 :
        var jscode="alert(123)"; //可以吧js代码的片段通过eval();方法来解析并当初js代码来执行
        eval(jscode); //弹出123   注意这里eval();是直接弹出
    </script>
</head>
<body>

</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值