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

    #JavaScript数据类型
    ##一、原始数据类型
    Javascript一共有 5种原始类型:Undefined、Null、Boolean、Number、String.

    *typeof运算符:判断其后面跟的参数是何种原始类型

    e.g.typeof true--返回boolean

    注意:typeof null--返回的是object,原因是null是对象的占位符,表示尚未存在的对象,即知道要找的对象是什么,但是并未找到该对象.

    1.Undefined类型

    * 此类型只有一个值:undefined.
    * 声明的变量未初始化,变量的默认值是undefined
    * 函数没有返回值或者没有明确的返回值时,调用结果为undefined

    2.Null类型

    * 此类型也只有一个值:null.
    * 值null和值undifined相等 `alert(null==undefined);`//返回true
     
    * 但是 `alert(null===undefined);`//返回false,值相等,但含义不同,null表示知道要找的对象是什么,但是并未找到该对象.

    **延伸:可以利用null或undifined来判断页面上是否存在某对象
        `if(null)/if(undefined){docunment.write("true");}else{docunment.write("false"}`

    null和undefined返回的值均为false,若要判断某元素a是否初始化, `var a;if(a){docunment.write("true");}else{docunment.write("false"}`如果返回为false,表示未初始化.

    另外还有一个方法`var a;var b=a||9;document.write(b);`,如果返回的是9,即表示a未初始化,但是需要排除也可能a的值和9相等的情况.

    3.Boolean类型

    * 此类型有2个值:true和false

    4.Number类型

    * js中最特殊的类型,既可以表示32位的整数,也可以表示64位的浮点数.
    * 特殊的 Number 值
     * Number值集合的外边界:Number.MAX_VALUE和Number.MIN_VALUE.
     *  Number.POSITIVE_INFINITY的值为无穷大Infinity
     *  Number.NEGATIVE_INFINITY的值为-Infinity
     *  判断一个数是否是有穷的,可以对任何数调用isFinite() 方法,以确保该数不是无穷大。`if(isFinite(a)){alert("finite")else{alert("infinite")}`
     *  NaN表示非数,这种情况发生在类型(String、Boolean 等)转换失败时,NaN与自身不相等`alert(NaN==NaN)`返回的是false.
     *  NaN属于Number类型 typeof NaN --返回的是number
    * isNaN()函数:检查其参数是否是非数字值
        是数字或者能转换成数字,返回false,否则返回true

    **编写函数,输入1+1,得出2

    5.string类型

    * 字符串字面量是由双引号(")或单引号(')声明的
    ##二、数据制类型转换
    - parseInt()  :把值转换成整数
     * parseInt("blue")--返回NaN;
     * parseInt("123")---返回123;
     * parseInt("12.3")--返回12,去除小数部分
    - parseFloat() :把值转换成浮点数
     - 字符串必须以十进制形式表示浮点数,而不是用八进制或十六进制
     * parseFloat("blue")--返回NaN;
     * parseFloat("1.23")--返回1.23;
     * parseFloat("1")--返回1,自动去除.0;
     * parseFloat("01")--返回1,自动去除.0;
    - toString():将数字转换成字符串
    - 强制类型转换
     * Boolean(value):把对应值转换成Boolean型;
     * Number(value):把对应值转换成数字(整数浮点都可以);转换的是整个值,而不是部分值
     * String(value):把对应值转换成字符串
    ##三、引用数据类型--对象
     1.Array类(Array对象):创建一个数组

    * 创建方法
     * `var arr = new Array();`
     * `var arr = new Array(10);`
     * `var arr = new Array(1,2,3);`
     * `var arr = new Array[1,2,3];`--常用方式
    * 操作Array的方法
     * shift方法:删除数组中的第一个元素并返回该元素,语法为arr.shift();数组长度length-1
     * pop方法:删除数组中的最后一个元素并返回该元素,语法为arr.pop();数组长度length-1
     * unshift方法:将指定的元素插入数组最前面并返回数组的新长度值。语法为arr.unshift();数组长度length+1(不管插入的是单个数字还是数组)
     * push方法:将新元素添加到一个数组的最后面,并返回数组的新长度值。语法为arr.push();数组长度length+1(不管插入的是单个数字还是数组)
     * concat 方法:将两个或更多数组组合起来,返回一个新数组.语法为arr.concat();从源数组**复制**元素到结果数组,源数组长度值不变
     * splice 方法:从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。语法为arr.splice(开始删除的Index,删除的个数,插入的元素或数组);数组长度length-删除的个数+插入的元素/数组个数
     * reverse 方法:将数组中的元素反序并返回该数组。语法为arr.reverse();
     * slice方法:slice(start,[end]):返回从原数组中指定开始下标到结束下标之间的项组成的新数组,源数组长度/值不变,slice 方法一直**复制**到 end 所指定的元素,但是不包括该元素.
     - shift()和pop():返回的是被删除的元素,数组长度/值改变;
     - splice():返回的也是被删除的元素,插入的元素直接显示在数组中,数组长度/值改变;
     - unshift()和push():返回的是数组的新长度值,数组长度/值改变;
     - concat()和slice():返回的是新数组,源数组的长度/值不变;
     - reverse:返回的是反序后的数组,数组的值反序,长度不变.
     
     2.String类(String对象):用于处理或格式化文本字符串以及确定和定位字符串中的子字符串。

    * 操作String的方法    var str="abcdef"
     * charCodeAt方法:返回一个整数,代表指定位置上字符的 Unicode 编码。语法为str.charCodeAt(index);如果指定index处没有字符,将返回NaN。
     * charAt 方法:返回指定索引位置处的字符。语法为str.charAt(index);出有效范围的索引值返回空字符串.
     * slice 方法:返回字符串中从指定index到结束index之间的字符串的片段。。语法为str.slice(start,[end]);使用的是**复制**,源字符串的长度/值不变.
     * substring 方法:返回位于String中指定位置的子字符串。 语法为str.substring(start,[end]);使用 start和end两者中的较小值作为子字符串的起始点,子字符串的长度等于 start 和 end 之差的绝对值.
     * indexOf 方法:返回 String 对象内第一次出现子字符串的字符位置。 语法为str.indexOf("子字符串",开始查找的index);查不到--返回-1;
     * lastIndexOf 方法:返回 String 对象中子字符串最后出现的位置。语法为str.lastIndexOf("子字符串",开始查找的index);从右向左执行查找,查不到--返回-1;
     * concat 方法:返回字符串值,该值包含了两个或更多个提供的字符串的连接。
     
     3.Global类:是一个固有对象,目的是把所有全局方法集中在一个对象中

    编码传递给浏览器的URI:

    * encodeURI 方法:将文本字符串编码为一个有效的统一资源标识符 (URI)。语法为encodeURI(uril);处理完整的URI,不对URI中的特殊字符进行编码,如: // ?
    * encodeURIComponent():对所有的字符编码,包括特殊字符
    * decodeURI():只对用encodeURI()替换的字符解码
    * decodeURIComponent 方法:解码所有encodeURIComponent()编码过的字符

    4.Date类:启用基本存储器并取得日期和时间

    `var now=new Date();`显示的是当前的时间--Sat Aug 29 2015 17:08:37 GMT+0800 (中国标准时间)
    获取年份`now.getFullYear();`
    获取月份`now.getMonth()+1;`
    获取日期`now.getDate();`
    获取星期`now.getDay();`
    获取小时`now.getHours();`
    获取分钟数`now.getMinutes();`
    获取秒数`now.getSeconds();`

    5.Math类:是一个固有对象,提供基本数学函数和常数

    * ceil方法:返回大于等于其数字参数的最小整数。语法Math.ceil(number);--往上取整`Math.ceil(13.1)`--返回14
    * floor方法:返回小于等于其数值参数的最大整数。 语法Math.ceil(number);--往下取整`Math.ceil(13.8)`--返回13
    * round 方法:返回与给出的数值表达式最接近的整数。语法Math.ceil(number);--四舍五入`Math.ceil(13.1)`--返回13,`Math.ceil(13.8)`--返回14
    * random 方法:返回介于 0 和 1 之间的伪随机数。语法Math.random();
     * 获取0-200之间的随机整数:`Math.round(Math.randon()*200);`
     
    6.instanceif运算符:返回一个 Boolean 值,指出对象是否是特定类的一个实例。

    * 与typeof运算符的区别在于它要求被判断的对象必须是已经定义的对象
    * 在typeof返回值为object时,比较有用.
    * result = object instanceof class,如果 object是class的一个实例,则instanceof 运算符返回 true。如果object不是指定类的一个实例,或者 object 是 null,则返回 false。


























  • 相关阅读:
    line-height 对a标签在有些浏览器中不支持
    git 学习手记
    nth-child 与 nth-of-type区别
    less学习笔记(持续更新)
    如何让textarea的placeholder中的文字换行
    livereload 不刷新页面 保存文件后 浏览器自动重新刷新
    优雅降级元(CSS JS)
    vw vh vm CSS长度单位
    NODE_PATH的设置
    EF学习笔记(十二):EF高级应用场景
  • 原文地址:https://www.cnblogs.com/sapho/p/4769482.html
Copyright © 2011-2022 走看看