• Javascript类型


    Javascript 有两中类型:原始类型和对象类型。

    原始类型包括:数字,字符串,布尔值,null和undefined。其余的都是对象类型。

    原始类型

    数字。Javascript采用IEEE754标准定义的64为的浮点格式表示数字。实际操作则是基于32位整数。

    字符串是一组由16位值组成的不可变的有序序列。只要引用字符串的属性,Javascript就会将字符串值通过调用new String(string_name)的方式转换成对象,这个对象继承了字符的方法,并被用来处理属性的引用。比如:

    var s="hello world";
    var word=s.subString(s.indexOf(" ")+1, s.length);//使用字符串的属性,当引用结束时,新创建的对象就会销毁
    <pre name="code" class="javascript">var s="test";
    		s.len=4;
    		var t=s.len;
    		alert(t);//输出undefined  , 在读取字符串、数字和布尔值的属性值或方法时,表现的像对象一样,但是如果对其进行赋值,则会忽略:修改只是发生在临时对象身上,而这个临时对象并未继续保留下来

    
    
    var s="test";
    		var s1=new String(s);
    		s1.len=4;
    		var t=s1.len;
    		alert(t);//输出4
    alert(s==s1);//true
    alert(s===s1);//false
    alert(s.toUpperCase());//TEST 
    alert(s);//test原来的字符串并没有改变,上面输出的是一个新的临时的字符串



    布尔值只有两个值,true和false。

    null是一个特殊的值用来描述“空”,是一个特殊的对象值,含义是“非对象”,但实际上用来表示数字、字符串和对象是“无值“的。

    undefined用来表示更深层次的”空值“,表示变量没有初始化,要是查询对象属性或者数组元素的值时返回undefined则说明这个属性或元素不存在。如果函数没有返回任何值则返回undefined。undefined是预定义的全局变量,它的值是”未定义“。

    对象类型

    对象是属性的集合,每个属性都由“名/值对”(值可以是原始值,也可以使对象)构成。还有一个特殊的对象----函数。函数是与它相关联的可执行代码的对象,通过可执行函数来运行代码。对于Javascript函数来讲,最重要的是,它们都是真值,并且Javascript可以将它们当作普通对象来对待。如果函数用来初始化一个新建的对象,我们称之为构造函数。每个构造函数定义了一类对象-----有构造函数初始化的对象组成的集合。类可以看作是对象类型的子类型。Javascript核心语言定义了数组类(Array)、函数类(Function)、日期类(Date)、正则类(RegExp)、错误类(Error)。
    Javascript对象是一种复合值:它是属性或者已命名值的集合。通过”."符合来引用属性值。当属性值是一个函数的时候,称其为方法。

    Javascript有自己的内存管理机制,可以自动对内存进行回收。Javascript是一种面向对象的语言。这意味这我们不用全局的定义函数去操作不同类型的值。数据类型本身可以定义方法来使用值。
    Javascript变量是无类型的,变量可以被赋予任何类型的值。使用var关键字来声明变量。采用词法作用域,不在任何函数内声明的变量是全局变量,全局可见;在函数内声明的变量是局部变量,只在声明的函数内可见。

    比较

    原始值的比较是值的比较。
    对象的比较是非值的比较,即使两个对象包含同样的属性及相同的值。各个索引元素完全相等的两个数组也不相等。对象值都是引用。当且仅当引用同一个基对象时,它们才相等。

    转换

    对象转换为布尔值非常简单:都是true。
    对象转为字符串比较复杂。所有的对象继承了两个转换方法。第一个是toString(),它的作用是返回一个反映这个对象的字符串。另一个是valueOf(),如果存在任意原始值就默认将对象转换为原始值,否则返回对象本身。
    空数组会被转换为 数字0,单个元素的数组会转换为一个数字。数组继承了默认的valueOf()方法,找个方法返回一个对象而不是一个原始值,因此数组到数字的转换则调用tostring()方法。空数组转换为空字符串,空字符串转换为 0。

    变量声明

    变量的作用域是变量声明时的区域。在函数体内,局部变量的优先级高于全局变量。
    作为属性的变量,实际上使定义了全局对象的一个属性。当使用var声明一个变量时,创建的这个属性时不可配置的,无法通过delete运算符删掉。


    作用域链



    操作符

    按位与 &
    按位或 |
    按位异或 ^
    按位非 ~
    左移 <<
    右移 >>
    无符号右移 >>>


    instanceOf




    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    【Windows socket+IP+UDP+TCP】网络基础
    【我所认知的BIOS】—> uEFI AHCI Driver(8) — Pci.Read()
    Unity3D十款最火的的插件推荐
    静态路由解决双外卡,PC做路由器的实现
    00096_Properties类
    TensorFlow2_200729系列---4、手写数字识别理论
    损失函数基础知识总结
    为什么选择onehot编码(总结)
    TensorFlow2_200729系列---3、梯度下降求简单线性回归实例
    numpy生成随机数据实例
  • 原文地址:https://www.cnblogs.com/andy-2014/p/4964239.html
Copyright © 2020-2023  润新知