• javascript基础,对象和函数(3)


    对象

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6         <script type="text/javascript">
     7             /*
     8              * JS中数据类型
     9              *     - String 字符串
    10              *  - Number 数值
    11              *     - Boolean 布尔值
    12              *     - Null 空值
    13              *     - Undefined 未定义
    14              *         - 以上这五种类型属于基本数据类型,以后我们看到的值
    15              *             只要不是上边的5种,全都是对象
    16              *     - Object 对象
    17              * 
    18              * 
    19              * 基本数据类型都是单一的值"hello" 123 true,
    20              *     值和值之间没有任何的联系。
    21              * 
    22              * 在JS中来表示一个人的信息(name gender age):
    23              *     var name = "孙悟空";
    24              *     var gender = "男";
    25              *     var age = 18;
    26              * 如果使用基本数据类型的数据,我们所创建的变量都是独立,不能成为一个整体。
    27              * 
    28              * 对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性。
    29              * 
    30              * 对象的分类:
    31              *     1.内建对象
    32              *         - 由ES标准中定义的对象,在任何的ES的实现中都可以使用
    33              *         - 比如:Math String Number Boolean Function Object....
    34              * 
    35              *     2.宿主对象
    36              *         - 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
    37              *         - 比如 BOM DOM
    38              * 
    39              *     3.自定义对象
    40              *         - 由开发人员自己创建的对象
    41              * 
    42              */
    43             
    44             //创建对象
    45             /*
    46              * 使用new关键字调用的函数,是构造函数constructor
    47              *     构造函数是专门用来创建对象的函数
    48              * 使用typeof检查一个对象时,会返回object
    49              */
    50             var obj = new Object();
    51             
    52             
    53             /*
    54              * 在对象中保存的值称为属性
    55              * 向对象添加属性
    56              *     语法:对象.属性名 = 属性值;
    57              */
    58             
    59             //向obj中添加一个name属性
    60             obj.name = "孙悟空";
    61             //向obj中添加一个gender属性
    62             obj.gender = "";
    63             //向obj中添加一个age属性
    64             obj.age = 18;
    65             
    66             /*
    67              * 读取对象中的属性
    68              *     语法:对象.属性名
    69              * 
    70              * 如果读取对象中没有的属性,不会报错而是会返回undefined
    71              */
    72             
    73             //console.log(obj.gender);
    74             //console.log(obj.hello);
    75             
    76             /*
    77              * 修改对象的属性值
    78              *     语法:对象.属性名 = 新值
    79              */
    80             obj.name = "tom";
    81             
    82             /*
    83              * 删除对象的属性
    84              *     语法:delete 对象.属性名
    85              */
    86             delete obj.name;
    87             
    88             
    89             console.log(obj.age);
    90 
    91         </script>
    92     </head>
    93     <body>
    94     </body>
    95 </html>

    内容

    1.var obj = new Object(); 构造函数是专门用来创建对象的函数。

    属性名和属性值

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6         <script type="text/javascript">
     7             
     8             var obj = new Object();
     9 
    10             /*
    11              * 向对象中添加属性
    12              * 属性名:
    13              *     - 对象的属性名不强制要求遵守标识符的规范
    14              *         什么乱七八糟的名字都可以使用
    15              *     - 但是我们使用是还是尽量按照标识符的规范去做
    16              * 
    17              */
    18             obj.name = "孙悟空";
    19             
    20             //obj.var = "hello";
    21             
    22             /*
    23              * 如果要使用特殊的属性名,不能采用.的方式来操作
    24              *     需要使用另一种方式:
    25              *         语法:对象["属性名"] = 属性值
    26              *     读取时也需要采用这种方式
    27              * 
    28              * 使用[]这种形式去操作属性,更加的灵活,
    29              *     在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性
    30              * 
    31              */
    32             obj["123"] = 789;
    33             obj["nihao"] = "你好";
    34             var n = "nihao";
    35             //console.log(obj["123"]);
    36             
    37             /*
    38              * 属性值
    39              *     JS对象的属性值,可以是任意的数据类型
    40              *         甚至也可以是一个对象
    41              */
    42             
    43             obj.test = true;
    44             obj.test = null;
    45             obj.test = undefined;
    46             
    47             //创建一个对象
    48             var obj2 = new Object();
    49             obj2.name = "猪八戒";
    50             
    51             //将obj2设置为obj的属性
    52             obj.test = obj2;
    53             
    54             //console.log(obj.test.name);
    55             
    56             /*
    57              * in 运算符
    58              *     - 通过该运算符可以检查一个对象中是否含有指定的属性
    59              *         如果有则返回true,没有则返回false
    60              *  - 语法:
    61              *         "属性名" in 对象
    62              */
    63             //console.log(obj.test2);
    64             
    65             //检查obj中是否含有test2属性
    66             //console.log("test2" in obj);
    67             //console.log("test" in obj);
    68             console.log("name" in obj);
    69             
    70         </script>
    71     </head>
    72     <body>
    73     </body>
    74 </html>

    内容

    1,如果要使用特殊的属性名,不能采用.的方式来操作,另一种方法,语法:对象["属性名"] = 属性值,  在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性,常用

     
    对象字面量
     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6         <script type="text/javascript">
     7             
     8             //创建一个对象
     9             //var obj = new Object();
    10             
    11             /*
    12              * 使用对象字面量来创建一个对象
    13              */
    14             var obj = {};
    15             
    16             //console.log(typeof obj);
    17             
    18             obj.name = "孙悟空";
    19             
    20             //console.log(obj.name);
    21             
    22             /*
    23              * 使用对象字面量,可以在创建对象时,直接指定对象中的属性
    24              * 语法:{属性名:属性值,属性名:属性值....}
    25              *     对象字面量的属性名可以加引号也可以不加,建议不加,
    26              *     如果要使用一些特殊的名字,则必须加引号
    27              * 
    28              * 属性名和属性值是一组一组的名值对结构,
    29              *     名和值之间使用:连接,多个名值对之间使用,隔开
    30              *     如果一个属性之后没有其他的属性了,就不要写,
    31              */
    32             var obj2 = {
    33                 
    34                 name:"猪八戒",
    35                 age:13,
    36                 gender:"",
    37                 test:{name:"沙僧"}
    38                 
    39             };
    40             
    41             console.log(obj2.test);
    42             
    43         </script>
    44     </head>
    45     <body>
    46     </body>
    47 </html>

    1.使用对象字面量来创建一个对象,var obj = {};

     
    函数
     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6         <script type="text/javascript">
     7             
     8             /*
     9              * 函数 function
    10              *     - 函数也是一个对象
    11              *     - 函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码)
    12              *     - 函数中可以保存一些代码在需要的时候调用
    13              *     - 使用typeof检查一个函数对象时,会返回function
    14              */
    15             
    16             //我们在实际开发中很少使用构造函数来创建一个函数对象
    17             //创建一个函数对象
    18             //可以将要封装的代码以字符串的形式传递给构造函数
    19             //var fun = new Function("console.log('Hello 这是我的第一个函数');");
    20             
    21             //封装到函数中的代码不会立即执行
    22             //函数中的代码会在函数调用的时候执行
    23             //调用函数 语法:函数对象()
    24             //当调用函数时,函数中封装的代码会按照顺序执行
    25             //fun();
    26             
    27             /*
    28              * 使用 函数声明 来创建一个函数
    29              *     语法:
    30              *         function 函数名([形参1,形参2...形参N]){
    31              *             语句...
    32              *         }
    33              */
    34             
    35             function fun2(){
    36                 console.log("这是我的第二个函数~~~");
    37                 alert("哈哈哈哈哈");
    38                 document.write("~~~~(>_<)~~~~");
    39             }
    40             
    41             //console.log(fun2);
    42             //调用fun2
    43             //fun2();
    44             
    45             /*
    46              * 使用 函数表达式 来创建一个函数
    47              * var 函数名  = function([形参1,形参2...形参N]){
    48              *      语句....
    49              *  }
    50              */
    51             
    52             var fun3 = function(){
    53                 console.log("我是匿名函数中封装的代码");
    54             };
    55             
    56             
    57             fun3();
    58             
    59         </script>
    60     </head>
    61     <body>
    62     </body>
    63 </html>

    1.实际开发中很少使用构造函数来创建一个函数对象,var fun = new Function("console.log('Hello 这是我的第一个函数');");

    2,声明函数,

    function 函数名([形参1,形参2...形参N]){
                 *          语句...
                 *      }
     
    3.函数表达式,
    * 使用 函数表达式 来创建一个函数
                 * var 函数名  = function([形参1,形参2...形参N]){
                 *   语句....
                 *  }
     
     
    函数的参数
     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6         <script type="text/javascript">
     7             
     8             /*
     9              * 定义一个用来求两个数和的函数
    10              *     可以在函数的()中来指定一个或多个形参(形式参数)
    11              *     多个形参之间使用,隔开,声明形参就相当于在函数内部声明了对应的变量
    12              *     但是并不赋值
    13              */
    14             function sum(a,b){
    15                 console.log("a = "+a);
    16                 console.log("b = "+b);
    17                 console.log(a+b);
    18             }
    19             
    20             /*
    21              * 在调用函数时,可以在()中指定实参(实际参数)
    22              *     实参将会赋值给函数中对应的形参
    23              */
    24             /*sum(1,2);
    25             sum(123,456);*/
    26             
    27             /*
    28              * 调用函数时解析器不会检查实参的类型,
    29              *     所以要注意,是否有可能会接收到非法的参数,如果有可能则需要对参数进行类型的检查
    30              * 函数的实参可以是任意的数据类型
    31              */
    32             //sum(123,"hello");
    33             //sum(true , false);
    34             
    35             /*
    36              * 调用函数时,解析器也不会检查实参的数量
    37              *     多余实参不会被赋值
    38              * 如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined
    39              * 
    40              */
    41             //sum(123,456,"hello",true,null);
    42             sum(123);
    43             
    44         </script>
    45     </head>
    46     <body>
    47     </body>
    48 </html>

    返回值

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="utf-8" />
     5         <title></title>
     6         <script type="text/javascript">
     7             
     8             /*
     9              * 创建一个函数,用来计算三个数的和
    10              * 
    11              * 可以使用 return 来设置函数的返回值
    12              *     语法:
    13              *         return 值
    14              * 
    15              *     return后的值将会会作为函数的执行结果返回,
    16              *         可以定义一个变量,来接收该结果
    17              * 
    18              *  在函数中return后的语句都不会执行
    19              * 
    20              *     如果return语句后不跟任何值就相当于返回一个undefined,
    21              *     如果函数中不写return,则也会返回undefined
    22              * 
    23              *     return后可以跟任意类型的值
    24              * 
    25              */
    26             function sum(a , b , c){
    27                 //alert(a + b +c);
    28                 
    29                 var d = a + b + c;
    30                 
    31                 return d;
    32                 
    33                 //return undefined;
    34                 
    35             }
    36             
    37             //调用函数
    38             //变量result的值就是函数的执行结果
    39             //函数返回什么result的值就是什么
    40             var result = sum(4,7,8);
    41             
    42             //var result = alert("hello");
    43             
    44             console.log("result = "+result);
    45             
    46             
    47         </script>
    48     </head>
    49     <body>
    50         
    51     </body>
    52 </html>
     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6         <script type="text/javascript">
     7             /*
     8              * 定义一个函数,判断一个数字是否是偶数,如果是返回true,否则返回false
     9              */
    10             
    11             function isOu(num){
    12                 
    13                 return num % 2 == 0;
    14             }
    15             
    16             var result = isOu(15);
    17             
    18             //console.log("result = "+result);
    19             
    20             
    21             /*
    22              * 定义一个函数,可以根据半径计算一个圆的面积,并返回计算结果
    23              * 3.14*r*r
    24              */
    25             function mianji(r){
    26                 
    27                 return 3.14*r*r;
    28                 
    29             }
    30             
    31             result = mianji(5);
    32             
    33             //console.log("result = "+result);
    34             
    35             
    36             /*
    37              * 创建一个函数,可以在控制台中输出一个人的信息
    38              *     可以输出人的 name age gender address
    39              * 
    40              * 实参可以是任意的数据类型,也可以是一个对象
    41              *     当我们的参数过多时,可以将参数封装到一个对象中,然后通过对象传递
    42              */
    43             function sayHello(o){
    44                 
    45                 //console.log("o = "+o);
    46                 console.log("我是"+o.name+",今年我"+o.age+"岁了,"+"我是一个"+o.gender+""+",我住在"+o.address);
    47             }
    48             
    49             //sayHello("猪八戒",28,"高老庄","男");
    50             //创建一个对象
    51             var obj = {
    52                 name:"孙悟空",
    53                 age:18,
    54                 address:"花果山",
    55                 gender:""
    56                 
    57             };
    58             
    59             //sayHello(obj);
    60             
    61             /*
    62              * 实参可以是一个对象,也可以是一个函数
    63              */
    64             
    65             function fun(a){
    66                 console.log("a = "+a);
    67                 //a(obj);
    68             }
    69             
    70             //fun(sayHello);
    71             
    72             //fun(function(){alert("hello")});
    73             
    74             fun(mianji(10));
    75             
    76             /*
    77              * mianji()
    78              *     - 调用函数
    79              *     - 相当于使用的函数的返回值
    80              * 
    81              * mianji
    82              *     - 函数对象
    83              *     - 相当于直接使用函数对象
    84              */
    85             
    86         </script>
    87     </head>
    88     <body>
    89     </body>
    90 </html>

    1.实参可以是任意的数据类型,也可以是一个对象,当我们的参数过多时,可以将参数封装到一个对象中,然后通过对象传递


     
     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6         <script type="text/javascript">
     7             
     8             function fun(){
     9                 alert("函数要执行了~~~~");
    10                 
    11                 for(var i=0 ; i<5 ; i++){
    12                     
    13                     
    14                     if(i == 2){
    15                         //使用break可以退出当前的循环
    16                         //break;
    17                         
    18                         //continue用于跳过当次循环
    19                         //continue;
    20                         
    21                         //使用return可以结束整个函数
    22                         //return;
    23                     }
    24                     
    25                     console.log(i);
    26                 }
    27                 
    28                 alert("函数执行完了~~~~");
    29             }
    30             
    31             //fun();
    32             
    33             /*
    34              * 返回值可以是任意的数据类型
    35              *     也可以是一个对象,也可以是一个函数
    36              */
    37             function fun2(){
    38                 
    39                 //返回一个对象
    40                 return {name:"沙和尚"};
    41             }
    42             
    43             var a = fun2();
    44             
    45             //console.log("a = "+a);
    46             
    47             function fun3(){
    48                 //在函数内部再声明一个函数
    49                 function fun4(){
    50                     alert("我是fun4");
    51                 }
    52                 
    53                 //将fun4函数对象作为返回值返回
    54                 return fun4;
    55             }
    56             
    57             a = fun3();
    58             //console.log(a);
    59             //a();
    60             fun3()();
    61             
    62             
    63         </script>
    64     </head>
    65     <body>
    66     </body>
    67 </html>

    1.返回值可以是任意的数据类型,也可以是一个对象,也可以是一个函数


     
    立即执行函数(匿名函数)
     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6         <script type="text/javascript">
     7             
     8             
     9             //函数对象()
    10             /*
    11              * 立即执行函数
    12              *     函数定义完,立即被调用,这种函数叫做立即执行函数
    13              *     立即执行函数往往只会执行一次
    14              */
    15             /*(function(){
    16                 alert("我是一个匿名函数~~~");
    17             })();*/
    18             
    19             (function(a,b){
    20                 console.log("a = "+a);
    21                 console.log("b = "+b);
    22             })(123,456);
    23             
    24         </script>
    25     </head>
    26     <body>
    27     </body>
    28 </html>

    对象

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6         <script type="text/javascript">
     7             
     8             /*
     9              * 创建一个对象
    10              */
    11             var obj = new Object();
    12             
    13             //向对象中添加属性
    14             obj.name = "孙悟空";
    15             obj.age = 18;
    16             
    17             //对象的属性值可以是任何的数据类型,也可以是个函数
    18             obj.sayName = function(){
    19                 console.log(obj.name);
    20             };
    21             
    22             function fun(){
    23                 console.log(obj.name);
    24             };
    25             
    26             //console.log(obj.sayName);
    27             //调方法
    28             obj.sayName();
    29             //调函数
    30             //fun();
    31             
    32             /*
    33              * 函数也可以称为对象的属性,
    34              *     如果一个函数作为一个对象的属性保存,
    35              *     那么我们称这个函数时这个对象的方法
    36              *     调用这个函数就说调用对象的方法(method)
    37              * 
    38              * 但是它只是名称上的区别没有其他的区别
    39              * 
    40              */
    41             
    42             var obj2 = {
    43                 
    44                 name:"猪八戒",
    45                 age:18,
    46                 sayName:function(){
    47                     console.log(obj2.name);
    48                 }
    49                 
    50             };
    51             
    52             obj2.sayName();
    53             
    54             
    55             
    56         </script>
    57     </head>
    58     <body>
    59     </body>
    60 </html>

    1.对象的属性值可以是任何的数据类型,也可以是个函数

     
    待续。。。
     
     
  • 相关阅读:
    数据收集
    数据展现
    一场媲美“超女”海选的招聘狂潮
    时机论:早起的鸟儿也要选对“用户”季节
    程序设计实践(评注版) 评注者序
    “三低”用户养活的互联网
    芯故事 心感动:英特尔企业文化的力量
    初始化游戏状态数据
    初始化游戏状态数据二
    几个常用的JavaScript字符串处理函数 – split()、join()、substring()和indexOf()
  • 原文地址:https://www.cnblogs.com/fsg6/p/12758958.html
Copyright © 2020-2023  润新知