在我们谈到JS的数据类型转化时,一定会知道分为自动转化强制转化两种方式吧,通俗来讲,自动就是在某种条件下,电脑浏览器自己会把其他类型的数据转化为相应的数据类型,而强制则是咋们程序员应该手动来做的了,通过代码来在任何条件下都可以实现数据类型的转化。有不妥的地方欢迎大家指正哈。

  咋们进入正题,第一步嘛,肯定是需要知道JS的数据类型到底是有哪一些,有哪些分类(基础数据类型,复杂的下次再谈哈):

  1.布尔类型(Boolean),也是咋们经常常用的一种数据类型,它的值只有true/false,这两个数值,另外需要注意的则是,这两个值写的时候一定要小写

    例子:var p1 = 4 > 3; 这个p的数据类型则是true,反之则数据类型相反

  2.字符串类型(String/Str),当然他的数值也有相应的识别方法和书写规范,字符串当中的数值是需要用双引号" ",或者单引号' ',来包裹起来的。

    例子:var p2 = '上海 ',那么这个p2数据类型则是字符串类型

  3.undefined和null

    undefined 表示没有数值 --- 应该有数值,但是现在没有数值

    null      表示数值为空 --- 表示有数值,但是数值是"空"

  4.数值类型(整数,小数/浮点数,NaN),数值类型则相应多一点,但是也是好理解的,咋们一个一个来看

    整数:integer / int

      在计算机程序中,常用的整数类型有  
               二进制 : 0 , 1
                八进制 : 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7
               十进制 : 0 - 9
               十六进制 : 0 - 9 a - f
       这里进制之间的转化时题外话,我就不多说了,最简单的方式了,咋们可以用电脑自带的计算机转到程序员模式,很快就能计算出来。
 
    小数/浮点数:在JavaScript中,对于浮点数的总位数有规定一个浮点数,有效数字/有效数值,最多 17 位,所谓的有效数字,值得是,左起,非零的数值。

      其中还分为有科学计数法,他的写法表达式为2e3,或者2e-3,他们相对应的数值是2000,和0.002。还有最重要的一点就是浮点数是有误差的,也                     就是精度溢出/精度丢失,因为在计算机程序中,浮点数的存储,存储内容,不是准确值,而是近似值  ,举例来看:console.log( 0.1 + 0.2 == 0.3 ),这个                     ==两边是否相等了?答案肯定是否定的,原因如下:浮点数因为存储方式的问题,直接执行运算或者比较,会造成精度溢出或者精度丢失的现象,造                        成执行的误差,我会将浮点数,转化为 高精度浮点数 , 在进行运算,会避免这样的问题发生

 
    NaN:则是不规范的数值,像123ab,这种则是NaN。
 
  接下来咋们来看他们之间的转化是如何转化的。
  
  1.其它数据类型转化为布尔数据类型
    1-1:自动转化,只有在执行if判断的时候,程序会自动把其它数据类型转化为布尔数据类型,转化原则是:0," ",undefined,null,NaN,只有这五                         个数值转化为false,其他所有的全是转化为true。
    1-2:强制转化,就是把相应变量或者数值前加上Boolean(数值/变量),即可转化为为布尔类型,转化原则了,也自动转化是一样的。
 
  2.其它数据类型转化为字符串数据类型
    2-1:自动转化,只有在执行字符串拼接的时候,+两侧的数值会自动转化为字符串,转化原则是:布尔值 true  ---> 字符串 'true',布尔值 false ---> 字                         符串 'false',undefined ---> 字符串 'undefined',unll ---> 字符串 'null',数值 ---> 将数值解析转化为 对应的 纯数字的字符串

      2-2:强制转化,就是把相应变量或者数值前加上String(数值/变量),即可转化为为字符串类型,转化原则了,也自动转化是一样的。
 
  3.其它数据类型转化为数值类数据类型
    3-1:自动转化,只有在执行数学运算的时候,程序会自动转化,转化原则为,布尔类型:true-->1,false-->0;null-->0;undefined-->0;字符串的                             话,分为两种,一是纯数值类型的直接转化为数值,而是不符合数字规范的则转化为NaN,
    3-2:强制转化,第一种就是把相应变量或者数值前加上Numble(数值/变量),即可转化为为字符串类型,转化原则与自动转化原则相同
            第二种是把相应变量或者数值前加上parseInt(数值/变量),是获取变量或者数据的整数部分
            第三种则是把相应变量或者数值前加上parseFloat(数值/变量),是获取整数,浮点数,全部都获取
 
 
 
 
 
 
 
 
 
 
 
 
 
 

关于JS的数据类型与转化(自动与强制)的更多相关文章

  1. js 六种数据类型的区别及bool 转换判断

    一.bool型转换判断: 1.true 和 1 比较是相同,false 和 0 比较是相同(是 “==” 比较),因为内部会实现数据类型的 转化,将true 转换成1,将false 转换成0, js ...

  2. JS的数据类型(包含:7种数据类型的介绍、数据类型的转换、数据类型的判断)

    前言 最新的 ECMAScript 标准定义了JS的 7 种数据类型,其中包括: 6 种基本类型:Boolean.Null.Undefined.Number.String.Symbol (ECMASc ...

  3. JavaScript知识 一、JS的数据类型

    一.JS的数据类型 1.基本类型 JS共有5大基本类型,分别是: 1)Undefined.他只有一个值:undefined.如果一个变量被定义但是没有给他赋值,那么这个时候系统会默认给这个变量赋值为u ...

  4. JS基本数据类型和引用数据类型的区别及深浅拷贝

    前言 首先我们先来了解一下什么叫栈堆,基本数据类型与引用数据类型 1.栈(stack)和堆(heap)stack为自动分配的内存空间,它由系统自动释放:而heap则是动态分配的内存,大小也不一定会自动 ...

  5. JS简单数据类型

    JS数据类型 在计算机中,不同的数据所需要占用的空间是不同的,为了便于把数据分析称所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型 简单数据类型 简单数据类型 说明 默认值 Numb ...

  6. js之数据类型(对象类型——构造器对象——对象)

    JavaScript中除了原始类型,null,undefined之外就是对象了,对象是属性的集合,每个属性都是由键值对(值可以是原始值,比如说是数字,字符串,也可以是对象)构成的.对象又可分为构造器对 ...

  7. JS中数据类型及原生对象简介

    js是一种专门设计用来给网页增加交互性的编程语言,它的技术体系包含了一下几个方面: 1.JavaScript核心语言定义:包括数据类型,变量,常量,运算符,语句等. 2.原生对象和内置对象 3.浏览器 ...

  8. 每日学习心得:Js基本数据类型常用方法扩展

    2014-02-17 前言: 节后的第一周上班,整个状态调整的还不错,已完全进入正常的工作状态.这一周主要还是对年前项目存在的一些问题进行完善.修整,基本上没有做大的改动.这里就把项目中经常用到的一些 ...

  9. Nightwatch.js – 轻松实现浏览器的自动测试

    Nightwatch.js 是一个易于使用的,基于 Node.js 平台的浏览器自动化测试解决方案.它使用强大的 Selenium WebDriver API 来在 DOM 元素上执行命令和断言. 语 ...

随机推荐

  1. C#输入输出及类型转换,变量,常量。

    //输出 Console.WriteLine("大哇塞"); 自动回车的. Console.Write("Hello world");  不带回车的 注意: 1 ...

  2. UMLet的使用与类图的设计

    本实验是为后续实验做准备的.在本书中,各个程序实例都要画类图,所以读者必须掌握用某种UML建模工具来画类图,本书选择 UMLet 作为 UML 的建模工具.实验目的本实验的主要目的如下. 理解类的基本 ...

  3. REMODE解析

    版权声明:本文为博主原创文章,未经博主允许不得转载. 纯视觉的三维重建(不考虑用结构光的那一类)常用的有两大类方法:一类是SfM,缺点是计算量比较大,做不到实时运行:另一类是KinectFusion为 ...

  4. AngularJS中格式化日期为指定格式字符串

    var date = $filter('date')(new Date(),'MM/dd/yyyy');

  5. [LC] 81. Search in Rotated Sorted Array II

    Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...

  6. lua https request 调用

    网上资料 引用ssl.https 包 local https = require("ssl.https") 之后按同http一样调用. 但是,这种只最基本的实现了访问https服务 ...

  7. 每个月执行一次任务,保存90天的mongo日志数据

    用mongo 的dump 和 restore实现 shell版 #!/bin/bash mongodump --host -d lewifi -c auditOrigData -q {}} -o ~/ ...

  8. WEB前端资源集(二)

    在上一篇为大家整理出了一些资源网站,接下来给大家整理了一些开发中常用的工具. 开发工具篇 开发工具集 Sublime Text 3:SublimeText 3是一个代码编辑器,也是HTML和散文先进的 ...

  9. unittest(2)-加载用例的3种方式-输出测试报告

    # 导入测试类执行测试用例 import unittest from day_20191202.class_unittest import TestMathMethod, TestMulti # fr ...

  10. 吴裕雄--天生自然KITTEN编程:飞船大战