zoukankan      html  css  js  c++  java
  • javascript变量

    5种简单数据类型(基本数据类型)

    undefined  null  boolean  number  string (还有一种复杂的数据类型:object)

    变量的两种不同的数据类型:基本类型(简单数据段)、引用类型(可能由多个值构成对象)

    1、基本类型

    var num1 = 5;
    var num2 = num1;

    num1与num2完全独立,不会相互影响

     

    2、引用类型——按引用访问、保存在内存中的对象(js不允许直接访问内存

    var person1 = new object();
    var person2 = person1;

    person1和person2实际引用一个对象,互相影响

    访问变量有按值和按引用两种方式,而参数只能按值传递

    function addTen(num){
         num+=10;
         return num;
    }
    var count = 20;
    var result = addTen(count);
    alert(count);  //20
    alert(result);  //30

    在函数内部重写obj时,变量引用的局部对象,函数执行完立即销毁

    function setName(obj){
        obj.name = "Ni";
        obj = new Object();
        obj.name = "Ge";
    }
    
    var person = new Object();
    setName(person);
    alert(person.name);  //"Ni"

    typeof和instanceof

    typeof操作符返回数据类型(返回字符串):undefined,boolean,string,number,object,function

    var s = "Ni";
    var b = true;
    var i = 22;
    var u = null;
    var o = new Object();
    var n;
    var person = new Object();

    typeof s      //string

    typeof b      //boolean

    typeof i      //number

    typeof u     //object

    typeof o     //object

    typeof n     //undefined

    person instanceof Object //true

    pattern instanceof RegExp //true

    执行环境及作用域

    1、全局执行环境: window对象

    全局执行环境的变量对象始终都是作用链域中的最后一个对象

    2、执行环境: 每个函数都有自己的执行环境,执行环境定义了变量或函数有权访问的其他数据

    3、作用域链的用途:代码在一个环境中执行时,创建对象的一个作用域链,保证有序

    var color = "blue";
    function changeColor(){
        if(color == "blue"){
             color = "red";
        }else{
             color = ""blue;
        }
    }

    函数changeColor()的作用域链包含两个对象:自己的变量对象arguments,全局环境变量对象color

    var color = "blue";
    function changeColor(){
         var anotherColor = "red";
         function swapColors(){
               var tempColor = anotherColor;
               anotherColor = color;
               color = tempColor;
               //这里可以访问color,anotherColor,tempColor
         } //这里可以访问color,anotherColor
    }//这里可以访问color

    4、没有块级作用域

    由if,for语句创建的变量i即使在for循环结束后,也依旧存在于循环外部的执行环境中

    5、var声明的是局部变量,不加var是全局变量。如果局部环境中存在同名标识符,就不会使用位于父环境中的标识符

  • 相关阅读:
    Elasticsearch之集群脑裂
    Windows下搭建elasticsearch集群案例
    springboot微信sdk方式进行微信支付
    SpringBoot war包部署到Tomcat服务器
    Your account already has a signing certificate for this machine but it is not present in your keycha
    F5负载均衡原理
    spring boot使用slf4j输出日志
    SpringBoot开发详解(六)-- 异常统一管理以及AOP的使用
    Java IO流学习总结七:Commons IO 2.5-FileUtils
    Java IO流学习总结六:ByteArrayInputStream、ByteArrayOutputStream
  • 原文地址:https://www.cnblogs.com/vanstrict/p/5678966.html
Copyright © 2011-2022 走看看