关于JS的数据类型

  简单类型有五种:Undifined, Null, Boolean, Number, String

  复杂类型有一种:Object

  通过typeof 操作符来获取数据类型,此操作符返回字符串

    undifined

    boolean

    string

    number

    object

    function

类型Undifined

  只有一个值,就是undifined

  typeof 未初始化的变量,返回undifined

  typeof 未声明的变量,返回undifined

Null类型

  只有一个值,就是null  

  typeof null 返回object

Boolean类型

  只有两个字面值:true, false

  所有类型的值都有与这两个值等价的值

  

Number类型

  表示浮点数的时候最高精度为17位小数,但是精度不如整数

  var a = 0.1;

  var b = 0.2;

  则:  a + b = 0.30000000000000004

  所以,使用浮点数需要注意精度问题。可以使用如下的方法进行:

  

        function accAdd(arg1, arg2) {

        var r1, r2, m, c;

        try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }

        try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }

        c = Math.abs(r1 - r2);
m = Math.pow(10, Math.max(r1, r2))
if (c > 0) {
var cm = Math.pow(10, c);
if (r1 > r2) {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", "")) * cm;
}
else {
arg1 = Number(arg1.toString().replace(".", "")) * cm;
arg2 = Number(arg2.toString().replace(".", ""));
}
}
else {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", ""));
}
return (arg1 + arg2) / m }

  数值的取值范围:

    Number.MIN_VALUE

    Number.MAX_VALUE

    超出取值范围的数值为:Infinity,可以通过isFinite()函数来判断

  NaN  表示非数值,本身是一个数值对象

    最大的特点是不等于任何值,即使是NaN,isNaN()函数可以判断是否为NaN

  数值转换

    Number()函数的转换规则

        

    parseInt()

      会判断是否符合数值模式,会忽略开头的空格,直到遇到第一个非空字符,解析到第一个非数值为止

      parseInt(参数1,16)  表示使用16进制转换,参数含义为进制

    parseFloat()

      使用方法与上面类似

String类型

Object类型

  对象可以通过new来创建。在JS中Object类型是所有它的实例的基础。Object中的方法和属性都存在于更具体的对象中

    constructor  构造函数,保存创建当前对象的函数

    hasOwnProperty(propertyName)  检查给定的属性是否存在于当前对象中

    isPrototypeOf(object)  检查传入的对象是否是当前对象的原型

    propertyIsEnumerable(propertyName)  检查给定的属性是否能使用for-in语句来枚举

    toLocaleString()    返回对象的字符串表示

    toString()       返回对象的字符串表示

    valueOf()       返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同

 

JavaScript 系列笔记(一)数据类型的更多相关文章

  1. 【JavaScript学习笔记】数据类型

    1.获取数据类型 typeof 用法: typeof variable  or  typeof(variable) JavaScript中总共有6种数据类型,string.number.boolean ...

  2. JavaScript学习笔记——2.数据类型与类型转换

    数据类型 JS中一共分成六种数据类型 1- String 字符串 2- Number 数值 3- Boolean 布尔值 4- Null 空值 5- Undefined 未定义 6- Object 对 ...

  3. javascript学习笔记-数据类型

    一 数据类型 基本类型:undefined,null,boolean,number,string     保存在栈内存中     占用空间固定        变量直接从栈内存中存取的是该值 引用类型: ...

  4. JavaScript系列----数据类型以及传值和传引用

    1.简单数据类型 在JavaScript中简单数据类型分为5种.分别为 Undefined, Null,Boolean,Number,String. Undefined类型Undefined类型只有一 ...

  5. JavaScript学习笔记(一)——数据类型和变量

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  6. JavaScript:学习笔记(2)——基本概念与数据类型

    JavaScript:学习笔记(2)——基本概念与数据类型 语法 1.区分大小写.Test 和 test 是完全不同的两个变量. 2.语句最好以分号结束,也就是说不以分号结束也可以. 变量 1.JS的 ...

  7. 深入理解javascript系列,读书笔记

    深入理解JavaScript系列(2):揭秘命名函数表达式 1.讲了函数声明和函数表达式的区别,包括一些在函数提升上的区别 2.如果给函数表达式的函数也取名,会在调试的时候受益 3.不要在block( ...

  8. 高性能javascript学习笔记系列(2)-数据存取

    参考 高性能javascript Tom大叔深入理解javascript系列 相关概念 1.执行上下文   当控制器转到ecmascript可执行代码的时候,就会进入一个执行上下文,执行上下文是以堆栈 ...

  9. JavaScript 系列博客(一)

    JavaScript 系列博客(一) 前言 本系列博客为记录学习 JavaScript 的学习笔记,会从基础开始慢慢探索 js.今天的学习笔记主要为 js 引入.定义变量以及 JavaScript 中 ...

随机推荐

  1. 解决Android ListView 和 ScrollView 共存时冲突 问题 方法其一

    转载请注明出处: http://www.goteny.com/articles/2013/11/8.html http://www.cnblogs.com/zjjne/p/3428480.html 当 ...

  2. (摘自ItPub)物理standby中switchover时switchover pending的解决办法

    http://www.itpub.net/thread-1782245-1-1.html DataGuard一主一物理备,sid为primary和standby,现在要把primary切换成备库,st ...

  3. C++实现发送HTTP请求

    #include <stdio.h>#include <windows.h>#include <wininet.h> #define MAXSIZE 1024#pr ...

  4. BZOJ3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队

    3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 89  Solve ...

  5. 【转】【教程】office 2013 & visio 2013的激活

    原文网址:http://zhan.renren.com/sola86?gid=3602888498037097351&checked=true 1.下载安装文件 office和visio都有两 ...

  6. HDU-1176(基础方程DP)

    Problem Description 都 说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉, 就掉落在他 ...

  7. hadoop-2.6.0为分布式安装

    hadoop-2.6.0为分布式安装 伪分布模式集群规划(单节点)------------------------------------------------------------------- ...

  8. appium 并发测试

    Android并发测试 Appium提供了在一台设备上启动多个Android会话的方案,而这个方案需要你输入不同的指令来启动多个Appium服务来实现. 启动多个Android会话的重要指令包括: - ...

  9. jquery绑定事件on的用法

    语法 $(selector).on(event,childSelector,data,function,map) 参数 描述 event 必需.规定要从被选元素移除的一个或多个事件或命名空间.由空格分 ...

  10. CATransform3D 讲解

    最近看到一个3D动画效果,决定认真就研究一下.从网上看到很多介绍,下面详细的讲解一下CATransform3D CATransform3D结构成员的意义. structCATransform3D { ...