• JS之面向对象:对象属性


    前几个月通过腾讯课堂平台报名了JS高级开发课程,学习了 ES5|ES6|React,在课堂里面记到了许多知识点,便存放在有道云笔记,后觉得年龄逐渐变大,感觉也就没有必要藏着掖着 慢慢搬出来留给有需要的人吧

    对象属性 【JS之面向对象】

    一、数据类型

       一、什么是数据类型?答:数据类型【引用类型的数据是放在堆里面,基础数据也是值类型放在栈里面】
       二、用于的业务场景?答:申明变量时使用不同需要,使用不同变量关键词
       三、引用类型与基本的区别? 答:基本类型 是不可发生改变,而引用类型是可以发生变化的,重要:值存放的位置
       四、比较,是否两个值是否相等?答:基础类型的比较是值的比较,引用数据类型为引用的比较,TypeOf 【不多】
    
       类型分为 
            1. 基础类型 【字符串 string、数字 number、布尔 、未定义 Undefined、ES6:[ Symbol ]  】
               var str = "123";
               var num = 1;
               var bol = true;
               var km = null; 
               var sym = Symbol('name'); //外语:森波, ES6 里面的独一无二,如果有两个Name是一样的,值都是不同的
            2.引用类型 【数组 Array、对象 Object、函数 Funtion 】 
               var arry = new Arry();
               var model = {};
               var fun = function(){}; 
              
               注意:引用类型的数据是放在堆里面,基础数据也是值【基础类型】类型放在栈里面,与 C#/NET 分类不同
    		  :引用类型存储值是可变的,大小不定, 值会在堆建立新空间 , 就像于赋值,而栈的引用地址会发生改变
                  :引用类型同时存储在栈和堆内存中里面的对象【指针 与 对象】
    

    来到重要点(编写并看结果得到结论)

           		 基础类型【栈】
    		  var a = 10;
    		  var b = a;  //(复制的情况)会新开辟新栈的空间,并不是指向给a的地址 
    		  a = a + 1;  
    		  console.log(b); // Value: 10 | 发现与a互不影响
    			
    		  引用类型 【堆】
    		  var model1 = {};
    		  var model2 = model1;     // 赋值 Copy了一个指针给 model2,此为相连互应
    		 model1.name="baicexxqtd";
    		 console.log(model2.name); //value: baicexxqtd
    		  
    		 var model3 = { name:"bai" };
    		 var model4 = model3; 
    		 model4.name = "baicexxqtd";   //value: baicexxqtd
    		 console.log(model3.name);
    		 
    		 var model3 = { name:"bai" };
    		 var model4 = model3; 
    		 model3.name = "baicexxqtd";  
    		 console.log(model4.name); //value: baicexxqtd
    		 
    		 const name1="bai"; //可改变 |
    		 
    		 var str = new String("bai"); // new 关键词是需要在堆里面开辟空间的属于 引用类型
    		 var str2 = String("bai"); //属于 堆
    		 var str3 = "bai"; //属于 栈
    		 
    		 【基础类型 比较】
    		 var a = 1;
    		 var b = true;
    		 console.log(a==b); //true 也可用 Typeof 检测
    		 
    		 【引用类型 比较】
    		 var arry1 = {};
    		 var arry2 = {};
    		 console.log(arry1 === arry2); //false
    		 
    		 【值传梯 测试】
    		 var arry1 = [0,1,2,3,4];
    		 fucntion add(){
    			 arry1[0] = 99; 
    		 }
    		 console.log(arry1[0]); // 99:发现已更改数据
    		 
    		 var num = 1;
    		 function add(){
    			 num = 0;
    		 }
    		 console.log(num); // 0:发现已更改数据, 为什么因为num是全局变量
    		 
    		 类型检测:
    		 typeof 2; //int
    		 typeof '123'; //string
    		 typeof true; //bool
    		 typeof (funtion(){}) //函数
    		 
    		 typeof {}; //object ---- 检测对象不可用  
    		 Object.prototype.toString.call({});  // 可用于此方法检测 "[object Object]"
    		 typeof []; //object ---- 检测数组不可用 可通过 
    		 Object.prototype.toString.call([]);  // 可用于此方法检测 "[object Array]"
    		 Object.prototype.toString.call((b=1)); //比 typeof 方法强大
           
    
  • 相关阅读:
    【转载】浏览器兼容性测试
    【转载】移动端
    【转载】Postman学习之【压力测试】
    【转载】如何进行bug总结
    【转载】按键精灵对安卓APP进行自动化界面点击测试
    【转载】Selenium+Python自动化测试环境搭建和搭建过程遇到的问题解决
    【转载】fiddler软件测试——Fiddler抓取https设置详解(图文)
    【转载】服务器性能测试工具 ---- nmon
    python中的一些好用的库
    python操作excel表格相关的库
  • 原文地址:https://www.cnblogs.com/1ddd/p/12895112.html
Copyright © 2020-2023  润新知