zoukankan      html  css  js  c++  java
  • js基本数据类型

    1、javascript中的基本数据类型,例如字符串和数字等。
    1》变量,存储数据,之所以称为变量,主要是因为他们所存储的数据在初始化之后仍然是可以改变的。
    正因为这样,我们在编写代码时往往会用变量来代表程序中的未知数据,例如,计算某个计算的结果值。变量使用通常可以分为两个步骤。
    声明变量通常分为两个步骤:声明变量,初始化变量,即给它一个初始值。变量名可以由任何数字,字符及下划线组合而成。但要记住它不能以数字开头,
    向下面这样是不被允许的i;
    2》所谓的变量初始化,实际上指的是变量首次(或者最初)被赋值的时机,它可以有一下两种选择。
    先声明变量,然后再初始化;声明变量与初始化同步进行。
    3》区分大小写

    2、数组。

    3、常用操作符。
    1》所谓操作符,通常指的是能对一两个输入执行某种操作,并返回结果的符号。
    为了更清晰地表达该术语的含义,先来看具体的示例
    1+2

    +是个操作符,该操作是一次加法运算。输入值为1和2(输入值也叫做操作数),结果值为3.
    这里的1和2都是直接参与加法运算的。现在我们用变量来表示它们,同时再另外声明一个
    变量来存储运算结果。

    2》事实上,当我们输入Var a = 1;这样的语句时,所执行的也是一种操作。
    这种操作叫做纯赋值,因而=也被称为纯赋值操作符。此外,javascript中还有一组
    由算术运算和赋值操作组合而成的操作符。我们叫它复合操作符。这些操作符能让我们
    的代码显得更为紧凑。

    4、基本数据类型
    基本类型
    1》数字:浮点数与整数
    2》字符串:序列由任意数量字符组成的序列
    3》布尔值:true或false
    4》undefined:当我们试图访问一个不存在的变量时,就会得到一个特殊值:undefined.除此之外,使用一个
    未初始化的变量也会如此,因为javascript会自动将变量在初始化之前的值设定为undefined
    5》null:这是另一种只包含一个值的特殊数据类型。所谓的null值,通常是指没有值,空值,不代表任何东西。
    null与undefined最大的不同在于,被赋予null的变量通常被认为是已经定义了的,只不过它不代表任何东西。
    关于这一点,我们稍后会通过一些具体的示例来解释。
    非基本类型
    6》任何不属于上述五种基本类型的值都会被认为是一个对象。甚至有时候我们也会将null视为对象,这会使人
    有些尴尬----这是一个不代表任何东西的对象。

    查看类型操作符------typeof
    如果我们想知道某个变量或值的数据类型,可以调用一种叫做typeof的特殊操作符。该操作符会返回一个代表
    数据类型的字符串,它的值包括:“number”,“string”,“boolean”,"undefined","object"和“function”。
    一、数字
    最简单的数字类型当然就是整数了,如果我们将一个变量赋值为1,并对其调用typeof操作符,控制台就会返回字符串“number”,请看下面的代码
    -----------当一个数字以0开头时,就表示这是一个八进制数。例如,八进制数0377所代表的就是十进制数255

    var n3 = 0377;>>> typeof n3; "number" >>>n3; 255
    如您所见,例子中最后一行所输出的就是该八进制数的十进制表示形式。如果您对八进制数还不太熟悉。那么十六进制您一定不会感到陌生,
    毕竟,CSS样式表中的颜色值使用的都是十六进制。
    8》指数表示法
    一个数字可以表示成lel(或者le+1,1E1、1E+1)这样的指数形式,意思是在数字1后面加1个0,也就是10.同理,2e+3的意思是在数字2后面加3个0,
    也就是2000.
    将2e+3理解为将数字2的小数点向右移三位。依照同理,2e-3也就能被理解为是将数字2的小数点左移3位。
    9》Infinity
    在javascript中,还有一种叫做Infinity的特殊值。它所代表的是超出了Javascript处理范围的数值。但Infinity依然是个数字,我们可以在控制台使用
    typeof来测试Infinity。当我们输入1e308时,但一旦将后面的308改成309就出界了。经实践证明,Javascript所能处理的最大值是1.7976931348623157e +308
    而最小值是5e-324
    type Infinity "number"
    任何数除0也为 Infinity
    Infinity表示的是最大数(或者是比最大数还要大的数)
    那么最小数该如何表示呢?答案是在Infinity之前加一个负号

    我们可以从0加到Infinity,也可以从0减到-Infinity。
    正负Infinity相加,我们也不会得到0,而是会得到一个叫做NaN(Not A Number的缩写,即不是数字)的东西。
    Infinity与任何数做任何操作结果都是Infinity,除了它本身

    10》NaN
    还记得之前见过的那个NaN,尽管它的名字叫做“不是数字”,但事实上它依然属于数字。只不过是一种特殊的数字罢了。
    如果我们在对一个假定的数字执行某个操作时失败了,就会得到一个NaN.例如,当我们试图将10与字符f相乘,其结果就会为NaN,
    因为f显然是不支持乘法运算的。
    而且,NaN是具有传染性的,只要我们的算数运算中存在一个NaN,整个运算就会失败。
    NaN不等于任何东西,包括它自己。NaN==NaN false
    二、字符串
    1》字符串通常指的是一组用于表示文本的字符序列,在javascript中,一对双引号或单引号之间的任何值都会被视为一个字符串。
    也就是说,1是一个数字的话,“1”就是一个字符串,在一个字符串上,typeof操作符会返回string
    2》字符串之间的+号拼接符,会拼接字符串。像+这样的双功能操作符可能会带来一些错误,因此,我们如果想执行拼接操作的话,
    最好确保其所有的操作数都是字符串。同样的,在执行数字相加时,我们也要确保其所有的操作都是数字。
    3》当我们将一个数字字符串用于算术运算符中的操作数时,该字符串会在运算中被当做数字类型来使用。
    (由于加法操作符的歧义性,这条规则不适用于加法运算)
    于是,将数字字符串转换为数字就有了一种偷懒的方法,只需将该字符串与1相乘即可。(当然,更好的选择是调用parseInt函数)
    其他类型转换成字符串也有一种偷懒的方法,只需要将其与空字符串连接即可。
    4》以后再遇到单引号和双引号混乱的时候,可以考虑用转义字符。

    三、布尔值
    1》true和false
    它们可用于,除了引号以外的任何地方。

    5、逻辑运算符
    在javascript中,主要有三种逻辑运算符,它们都属于布尔运算,分别是!-----逻辑非(取反),&&-----逻辑与,II------逻辑或。
    在javascript中,如果我们想描述一些日常生活中非真即假的事物,就可以考虑用逻辑非运算符。
    如果在同一个值上执行两次逻辑非运算,其结果就等于原值。
    如果在一个非布尔值上执行逻辑运算,该值会在计算期间被转换成布尔值。
    如您所见,上例中的字母串“One”是先被转换成布尔值true然后再取反的,结果为false,如果我们对它取反两次,结果就会为true.
    使用双重取反操作可以很容易地将任何值转换为等效的布尔值。虽然这种方法很少被用到,但从另一个角度也说明了将其他类型的
    值转换为布尔值的重要性,而事实上,除了下面所列出特定值以外(它们将被转换为false),其余大部分值在转换为布尔值时都为true.
    空字符串“”,null,undefined,数字0,数字nan,布尔值false
    这6个值有时也会被我们统称为falsy,而其他值则被称为truthy(包括字符串0,“”,“false”)

    虽然运算符有顺序,但是我们尽量使用括号,而不是依靠操作符优先级来设定代码的执行顺序,这样我们的代码才能有更好的可读性
    6、惰性求值
    如果在一个连续的逻辑操作中,操作结果在最后一个操作完成之前就已经明确了的话,那么该操作往往就不必再继续执行了,
    因为这已经不会对最终结果产生任何影响。这是Js引擎的原理
    会提高性能,但是这种行为会使我们的代码变得难以理解,但在某些时候这样做也是有用的,例如,当我们不能确定某个变量是否已经被定义时,
    就可以像下面一样, var mynumber = mynumber || 10;
    这种做法简单而优雅,但是请注意,这也不是绝对安全的,如果这里的mynumber之前被初始化为0,(或者是那6个falsy值中的任何一个),这段代码
    就不太可能如我们所愿了。
    7、Undefined与null

    foo foo is not defined >>>typeof foo "undefined"
    var somevar >>>somevar >>>typeof somevar "undefined"

    var somevar = null null
    somevar null
    typeof somevar "object"
    尽管undefined和Null之间的差别微乎其微,但有时很重要,
    var i= 1 + undefined; i; NaN
    var i = 1 + null; i; 1
    这是因为null和undefined在被转换成其他基本类型时,方法存在一定的区别,下面我们给出可能转换的类型
    转换成数字:
    1undefined
    NaN
    1
    null
    0
    转换成布尔值
    !!underfined
    false
    !!null
    false
    转换成字符串
    ""+null
    "null"
    ""+undefined
    "undefined"
    8、控制流语句,例如循环和if-else条件表达式等。

  • 相关阅读:
    paper 66: MATLAB函数—disp的使用
    paper 65 :尺度不变特征变换匹配算法[转载]
    paper 64:尺度空间(Scale space)理论
    paper 63 :函数比较:imfilter与fspecial
    paper 62:高斯混合模型(GMM)参数优化及实现
    paper 61:计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接
    paper 60 :转载关于视觉SCI期刊
    paper 59:招聘
    paper 58 :机器视觉学习笔记(1)——OpenCV配置
    paper 57 :颜色直方图的代码
  • 原文地址:https://www.cnblogs.com/guoyinglichong/p/7723115.html
Copyright © 2011-2022 走看看