zoukankan      html  css  js  c++  java
  • JavaScript 变量、类型与计算

    • 变量类型
    • 变量计算

    变量
    题目:

    1. JavaScript 中使用typeof能得到的有哪些类型?

       1.1 变量类型
       
       (1).js中的数据类型:字符串、数字、布尔、数组、对象、Null、Undefined
       
       (2).值类型:把每个值存到每个变量
       
           var a = 100;
           var b = a;
           a = 200;
           console.log(b);  // 100
       
       (3).引用类型:1.对象,2.数组,3.函数  
       
       特点:它可以无限扩大属性
       
           var a = { age:20};
           var b = a;
           b.age = 21;
           console.log(a.age); // 21
           
       (4).typeof运算符
       
           typeof undefined   //undefined
           
           typeof 'abc'   //string
           
           typeof 123   //number
           
           typeof true   //boolean
           
           typeof {}   //object
           
           typeof []   //object
           
           typeof null   //object
           
           typeof console.log   //function
          ``` 
       1.2 变量计算 -- 强制类型转换
           
           可能需要转换的情况:
           ```
           (1).字符串拼接
               
               var a = 100 + 10;   //110
               var b = 100 + '10'; //10010
               
           (2).== 运算符
               
                100 == '100';  //true
                0 == '';   //true
                null == undefined; //true
                
                
               
           (3).if语句
           
               var a = true;
               if(a){
                   ..
               }
               
               var b = 100;
               if(b){
                   ..
               }
               
               var c = '';
               if(c){
                   ..
               }
               
           (4).逻辑运算符
           
               console.log(10 && 0);   //0  10自动转换为true
               console.log('' || 'abc'); //'abc' ''自动转换为false
               console.log(!window.abc);    true undefined 就是fasle
               
               判断一个变量会被当做true 还是false
               
               var a = 100;
               console.log(!!a);   //true
               
               var a = '';
               console.log(!!a);   //false
       
      
    2. 何时使用 === 何时使用 == ?

        if(obj.a == null){
            
            1.这里相当于obj.a === null  || obj.a === undfined ,简写形式
            
            这里是jQuery原发中推荐的写法
            
            2.== 和 != 比较若类型不同,先偿试转换类型,再作值比较,最后返回值比较结果 。
            而 === 和 !== 只有在相同类型下,才会比较其值。
             
            3.首先,== equality 等同,=== identity 恒等。
            
                (2.1). ==, 两边值类型不同的时候,要先进行类型转换,再比较。
                
                (2.2). ===,不做类型转换,类型不同的一定不等。
            
            下面分别说明:
            先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等:
                1、如果类型不同,就[不相等]
                2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
                3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
                4、如果两个值都是true,或者都是false,那么[相等]。
                5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
                6、如果两个值都是null,或者都是undefined,那么[相等]。
            再说 ==,根据以下规则:
                1、如果两个值类型相同,进行 === 比较。
                2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
                a、如果一个是null、一个是undefined,那么[相等]。
                b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
                c、如果任一值是 true ,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
                d、如果一个是对象,另一 个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试 valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)
                e、任何其他组合,都[不相等]。
            举例:
                "1" == true
                 类型不等,true会先转换成数值 1,现在变成 "1" == 1,再把"1"转换成 1,比较 1 == 1, 相等。
                = 赋值运算符 
                == 等于 
                === 严格等于
            例: 
                var a = 3; 
                var b = "3";
                a==b 返回 true 
                a===b 返回 false
                因为a,b的类型不一样
                ===用来进行严格的比较判断
         
        }
    

    3.JavaScript有哪些内置函数?

        (1).数据封装类对象
        
            Object
            Array
            Boolean
            Number
            String
            Function
            Date
            EegExp
            Error
    
    1. JavaScript变量按照存储方式区分哪些类型,并描述其特点?
        (1). 值类型  
        
            var a =10;
            var b = a;
            a  = 11;
            console.log(b);  //10
            
        (2). 引用类型   var obj = {x:100}
        
            var obj1 = { x:100 };
            var obj2 = obj1;
            obj1.x = 200;
            console.log(obj2.x);    // 200
        ```
    5. 如何理解JSON?
        ```
        JSON     只不过去一个 JS 的对象而已
        
        2个接口:
        
            1. 对象变成字符串 -- JSON.stringify({a:10, b:20});
            2. 字符串变成对象 -- JSON.parse('{"a":10, "b":29}');
        ```
  • 相关阅读:
    PHP 使用 GET 传递数组变量
    Java实现 蓝桥杯 算法训练 数据交换
    Java实现 蓝桥杯 算法训练 数据交换
    Java实现 蓝桥杯 算法训练 数据交换
    Java实现 蓝桥杯 算法训练 景点游览
    Java实现 蓝桥杯 算法训练 景点游览
    Java实现 蓝桥杯 算法训练 景点游览
    Java实现 蓝桥杯 算法训练 二进制数数
    Java实现 蓝桥杯 算法训练 二进制数数
    Java实现 蓝桥杯 算法训练 二进制数数
  • 原文地址:https://www.cnblogs.com/liangfengbo/p/7305550.html
Copyright © 2011-2022 走看看