一、数据类型

分类

基本(值)类型:

  • String
  • Number
  • Boolean
  • undefined
  • unll

对象(引用)类型:

  • Object:任意对象
  • Array:一种特别的对象
  • Function:一种特别的对象

计算机世界中的万事成物都是数据。

计算机程序可以处理大量的数据,为了方便数据的管理,将数据分成了不同的类型:

注:通过 typeof 关键字检测数据类型 返回数据类型的字符串表达

<script>
// 检测 1 是什么类型数据,结果为 number
document.write(typeof 1);
</script>

1.1 数值类型

即我们数学中学习到的数字,可以是整数、小数、正数、负数

  <script> 
   let score = 100; // 正整数
   let price = 12.345; // 小数
   let temperature = -40; // 负数

   document.write(typeof score); // 结果为 number
   document.write(typeof price); // 结果为 number
   document.write(typeof temperature); // 结果为 number
 </script>

JavaScript 中的数值类型与数学中的数字是一样的,分为正数、负数、小数等。

1.2 字符串类型

通过单引号( '') 、双引号( "")或反引号包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。

注意事项:

  1. 无论单引号或是双引号必须成对使用

  2. 单引号/双引号可以互相嵌套,但是不以自已嵌套自已

  3. 必要时可以使用转义符 \,输出单引号或双引号

  <script> 
   let user_name = '小明'; // 使用单引号
   let gender = "男"; // 使用双引号
   let str = '123'; // 看上去是数字,但是用引号包裹了就成了字符串了
   let str1 = ''; // 这种情况叫空字符串

   documeent.write(typeof user_name); // 结果为 string
   documeent.write(typeof gender); // 结果为 string
   documeent.write(typeof str); // 结果为 string
 </script>

1.3 布尔类型

表示肯定或否定时在计算机中对应的是布尔类型数据,它有两个固定的值 true 和 false,表示肯定的数据用 true,表示否定的数据用 false

1.4 undefined

未定义是比较特殊的类型,只有一个值 undefined,只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。

  <script> 
   // 只声明了变量,并末赋值
   let tmp;
   document.write(typeof tmp); // 结果为 undefined
 </script>

注:JavaScript 中变量的值决定了变量的数据类型。

1.5 NaN (不是一个数字)有时转换成数值类型,当转换失败时结果为 NaN

isNaN() 方法:是NaN返回true不是返回false

isNaN和Number.isNaN的区别:

      isNaN会先将参数转为 Number类型 如果转不成则为NaN, 那么会返回true

Number.isNaN不会进行转换,所以只有当参数为 NaN 时才返回true

1.6 无穷大 无穷小(Infinity)

 //无穷大
 var max = Infinity
 //无穷小
 var min = -Infinity

二、类型转换

理解弱类型语言的特征,掌握显式类型转换的方法

在 JavaScript 中数据被分成了不同的类型,如数值、字符串、布尔值、undefined,在实际编程的过程中,不同数据类型之间存在着转换的关系。

2.1 隐式转换

某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。

  <script> 
   let num = 13; // 数值
   let num2 = '2'; // 字符串

   // 结果为 132
   // 原因是将数值 num 转换成了字符串,相当于 '13'
   // 然后 + 将两个字符串拼接到了一起
   console.log(num + num2);

   // 结果为 11
   // 原因是将字符串 num2 转换成了数值,相当于 2
   // 然后数值 13 减去 数值 2
   console.log(num - num2);

   let a = prompt('请输入一个数字');
   let b = prompt('请再输入一个数字');

   alert(a + b); //字符串
 </script>

2.2显式转换

编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换。

2.2.1 转为number:有时转换成数值类型,当转换失败时结果为 NaN

 1.Number方法(直接转number类型)

2.使用parseInt方法(转整型):截取数字字符

3.使用parstFloat方法 (转小数):截取数字字符

 4.boolean类转为number类型:false为0,true为1

5.undefined和null转为number:undefined为NaN,null为0

2.2.2 Boolean方法 转为布尔类型

1.number转为布尔:非0和非NaN则为true

 2.undefined和null转为boolean:值为false

 3.Sting类型转为Boolean:非空字符串‘’即为ture

2.2.3  转为string类型  

 1.toString方法将number类型转为string类型
      var str1 = number1.toString() 

 2.String()方法转为string类型

方法补充:

1.parseInt()、parseFloat()方法会先截取字符串中的数字字符(字符串必须以数字字符开头)再转为对应类型

2.Number()方法只能将数字字符组成的字符串转为数值类型

JavaScript数据类型以及转换的更多相关文章

  1. JavaScript数据类型和转换

    JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 ...

  2. javascript数据类型及转换

    此篇数据类型和转换只限于ECMA规范,规范用了比较大的篇幅讲数据类型和类型转换,理解了这个最基本的概念对表达式.语句.执行环境.对象及继承都有非常大的帮助,遂整理如下: 数据类型和值 类型转换 表达式 ...

  3. JavaScript学习笔记——数据类型强制转换和隐式转换

    javascript数据类型强制转换 一.转换为数值类型 Number(参数) 把任何的类型转换为数值类型 A.如果是布尔值,false为0,true为1 B.如果是数字,转换成为本身.将无意义的后导 ...

  4. JavaScript复习之--javascript数据类型隐式转换

    JavaScript数据类型隐式转换.一,函数类    isNaN()    该函数会对参数进行隐式的Number()转换,如果转换不成功则返回true.    alert()    输出的内容隐式的 ...

  5. JavaScript 那些不经意间发生的数据类型自动转换

    JavaScript可以自由的进行数据类型转换,也提供了多种显式转换的方式.但是更多的情况下,是由JavaScript自动转换的,当然这些转换遵循着一定的规则,了解数据类型自由转换的规则是非常必要的. ...

  6. Javascript的数据类型和转换

    JavaScript 数据类型 在 JavaScript 中有 5 种不同的数据类型: string number boolean object function 3 种对象类型: Object Da ...

  7. 建议2:注意Javascript数据类型的特殊性---(2)慎用JavaScript类型自动转换

    在JavaScript中能够自动转换变量的数据类型,这种转换是一种隐性行为.在自动转换数据类型时,JavaScript一般遵循:如果某个类型的值被用于需要其它类型的值的环境中,JavaScript就自 ...

  8. javascript数据类型及类型的转换总结

    javascript 是浏览器客户端脚本语言,要想让网页与后台程序更好的交互效果,这里我们详细了解javascript 数据类型及类型的转换 1,数据类型 number number类型 数字类型,浮 ...

  9. 27 JavaScript的引入&注释&弹窗&变量常量&数据类型及转换&内存&垃圾回收

    JS的引入: 1 内部引入 绑定元素事件如onclick="" 绑定锚点如href="JavaScript:void(0)" script标签引入,注意:如果标 ...

  10. javaScript数据类型及判断

    ECMAScript数据类型概念: ECMAScript数据类型分为两类:原始类型和对象类型(即基本类型和引用类型): ECMAScript数据类型也可以分为可变类型和不可变类型,数组和对象属于可变类 ...

随机推荐

  1. Day24:结论的撰写&&openid再次尝试

    今日完成的任务: 1.完成部分总报告结论的撰写. 2.再次尝试获取openid 根据官方文档,wx.login()的回调函数中,需要我们传递生成的用户登录凭证到code2accessToken的接口中 ...

  2. usb 2.0 request

  3. 学习-Vue2-Vue实例-数据与方法-数据的响应式

    当一个实例被创建时,它将data对象中的所有的property加入到Vue的响应式系统中. 当这些property的值发生改变时,视图将会产生"响应",即匹配更新为新的值.当这些数 ...

  4. Kotlin源码分析 - 元编程(使用自身语言编写生成自身代码)

    Kotlin源码分析 Kotlin模块FIR分析发现,在生成fir tree的时候,kotlin使用了元编程的技术,以前看到这个技术还是在JastAdd上,使用jastadd语法去写代码,生成Java ...

  5. 小程序使用webview嵌套H5两边如何传参.

    需求:项目里面需要进行人脸核身.需要调起小程序的人脸核身功能.需要h5跳转到小程序页面.验证完后回退 1.h5页面先引入一个js文件 2.当用微信小程序的web-view内嵌H5页面的时候,H5页面的 ...

  6. JVM中的GC系统

    什么是GC? GC(Garbage Collection)称之为垃圾回收,在JVM的执行引擎中自带这样的一个GC系统,此系统会按照一定的算法对内存进行监控和垃圾回收. 如何判断哪些对象是垃圾? 1.引 ...

  7. lua-携程

    function SayHey(mag) for i = 1 , 3 doprint(mag)coroutine.yield()end end --创建携程(协同) coFunc= coroutine ...

  8. STP协议-基础

    生成树协议 一 .技术背景一个缺乏冗余性设计的网络:任何一个网络节点出现故障,会造成单链路故障.单设备故障,使整个网络瘫痪. 引入冗余性的同时也引入了二层环路:网络的冗余性增强了,但是却出现了二层环路 ...

  9. TP5--路由

    路由定义采用\think\Route类,通常是在应用的路由配置文件application/route.php进行注册 use think\Route; //路由规则 // Route::rule('/ ...

  10. vs code for macOS的安装

    参考下载链接:http://www.pc6.com/mac/147684.html 汉化方法: 中文设置方法(如下图)在插件设置的搜索栏中输入"chinese",选择第一个简体中文 ...