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}');
        ```
  • 相关阅读:
    安全规约
    课时作业1
    C# 操作防火墙 个人类库
    解决WinScp连接被拒绝的问题
    C# 使用WinSCP方法 类库、脚本
    【运维知识】BAT处理 延迟启动程序 临时解决网络IP获取慢导致的网络连接失败
    AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
    用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
    AngularJS实现ajax请求的方法
    AngularJS中指令的四种基本形式实例分析
  • 原文地址:https://www.cnblogs.com/liangfengbo/p/7305550.html
Copyright © 2011-2022 走看看