zoukankan      html  css  js  c++  java
  • 01.JavaScript 面向对象精要--原始类型和引用类型

    一.什么是类型
     JavaScript 虽然没有类的概念。但依然存在两种类型:原始类型和应用类型。
     原始类型保存为简单的数据值,引用类型则保存为对象,其本质是指向内存位置
     的引用。也就是说:原始值被直接保存在对象内,而引用值则作为一个指针保存在
     对象内,该指针指向实际对象在内存中的储存位置。

    二.原始类型
     2.1 JavaScript中5中原始类型:boolean,number,string,null,undefined
      原始类型变量直接保存原始值(而不是一个指针),当你将原始值赋值给一个变量
      时,该值将复制到变量中。

    1  var color1 = ''red;
    2   var color2 = color1; //将color1的值复制一份给变量color2
    3   color1 = 'blue';
    4   console.log(color1); //'blue'
    5   console.log(color2); //'red'


      2.2 鉴别原始类型
      鉴别原始类型的最佳方法使用typeof操作符。
      2.3 原始方法
      虽然字符串、数字、布尔值是原始类型,但是它们拥有方法(underfined和null没有)

    1  console.log(typeof 'hello'); //'string'
    2   console.log(typeof 10); //'number'
    3   console.log(typeof 5.1); //'number'
    4   console.log(typeof true); //'boolean'
    5   console.log(typeof underfined); //'underfined'
    6   console.log(typeof null); //'object' 判断一个值是否为空,直接和null比较
    7   console.log(null == underfined); //'true';
    8   console.log(null === underfined); //'false';

    三.引用类型
     3.1 创建对象

    1  var o1 = new Object();
    2   var 02 = create.Object();
    3   var o3 = {};


     3.2 对象引用解除
     3.3 添加删除属性
     3.4 内建对象实例化
      1) Array   //数组类型,以数字为索引的一组值的有序列表
      2) Date    //日期和时间类型
      3) Error    //运行期错误类型
      4) Function   //函数类型
      5) Object    //通用对象类型
      6) RegExp   //正则表达式类型
     3.5 对象和数组字面量形式

    1  var o = {
    2    naem : 'hello',
    3    age : 1
    4   };
    5   var arr = [1,2,3];


      3.6 函数字面形式

    1 function ref(value){
    2    return value;
    3   };
    4   var ref2 = new Function('value','return value;')


      3.7 正则表达式字面形式

    1   var numbers = /d+/g;
    2   var numbers2 = new RegExp("\d+","g");


     3.8 访问属性

    1 var arr = [];
    2   arr.push(123);
    3   var arr2 = [];
    4   arr2["push"](123);


       3.9 鉴别引用类型
      函数可以使用typeof而数组和对象则使用instanceof操作符

    1 var arr = [];
    2   var o = {};
    3   function f(){};
    4   console.log(arr instanceof Array) //true
    5   conlole.log(o instanceof Object); //true
    6   console.log(f instanceof Function) //true


       3.10 鉴别数组 使用Array.isArray();

    1 var arr = [];
    2   console.log(Array.isArray(arr)); //true


      四.原始封装类型
     原始封装类型共有3种(Number,String,Boolean)

    1 var name = 'Nicholas';
    2  var temp = new String(name);
    3  temp.last = 'Zakas';
    4  temp = null;
    5  console.log(temp.last) //underfined


      临时对象仅在值被读取时创建

  • 相关阅读:
    AcWing 1135. 新年好 图论 枚举
    uva 10196 将军 模拟
    LeetCode 120. 三角形最小路径和 dp
    LeetCode 350. 两个数组的交集 II 哈希
    LeetCode 174. 地下城游戏 dp
    LeetCode 面试题 16.11.. 跳水板 模拟
    LeetCode 112. 路径总和 递归 树的遍历
    AcWing 1129. 热浪 spfa
    Thymeleaf Javascript 取值
    Thymeleaf Javascript 取值
  • 原文地址:https://www.cnblogs.com/ShareBeautiful/p/5839526.html
Copyright © 2011-2022 走看看