02-JS中的数据类型及类型转换

一、数据类型

JS中的值,无论是字面量还是变量,都有明确的类型。

(一)概述

1.基本类型5种

number 数字类型

string 字符串类型

boolean 布尔类型,仅有两个值true和false

undefined undefined类型,此类型值只有一个,就是undefined

null null类型,这种类型的值也就只有一个null

2.引用类型

(二)数据类型的检测

使用typeof关键字检查数据类型,通常用来检测变量的类型,因为直接量的类型一眼就看的出来

var a = 123;
console.log(typeof a); //number

1.number数字类型

//下面定义的变量都是number类型
<script>
var a = 200;
var b = -200;
var c = 200.235;
var d = .5e4;
var e = 0xf0;
var f = 016;
var g = Infinity;
var h = NaN;
console.log(typeof a);
console.log(typeof b);
console.log(typeof c);
console.log(typeof d);
console.log(typeof e);
console.log(typeof f);
console.log(typeof g);
console.log(typeof h);
</script>

number类型的东西,所有的数字(不分正负、整浮、大小、进制、infinity、NaN)

2.string字符串类型

	var str1 = "小蔡啊";
var str2 = "666";
var str3 = ""; //空字符串也是字符串
console.log(typeof str1);
console.log(typeof str2);
console.log(typeof str3);

3.boolean类型

boolean类型(布尔类型),布尔类型只有两个值true false,即真或假。

var bool = true;
console.log(bool );
console.log(typeof bool); //boolean

注意:此时true和false没有加引导,所以不是字符串,同时注意它也是变量,true是一个关键字,本身就有特殊意义,表示真和假。

4.undefined类型

前面提到过,如果只var了一个变量,没有赋初值,它的默认值是undefined。

这个undefined是自成一家,类型和值都是undefined,这种类型的值也只有一个。

var un;  //这里只定义了,没有赋初值
console.log(un);
console.log(typeof un); //undefined

(三)变量的类型

变量是什么类型,和赋值有关,而和定义的时候是没有关系的。定义的时候都是使用var关键字定义。

//动态数据类型
var num = 123; //number
console.log(typeof num);
num = "哈哈"; //改为string是合法的
console.log(typeof num);

我们说JS这个语言叫做动态数据类型,就是赋值的时候就决定这个变量的类型了。甚至可以改变这个变量的值,为其他类型的值。变量的类型是自动检测,就是检查变量存储的值的类型,不是认为定义的。

二、运算符:加号 +

加号两边都是数字的时候,那么就是数学加法;

两边只要有一边是字符串,那么结果就是字符串拼接。

console.log("小" + "蔡");  //小蔡
console.log(3 + 2); //5
console.log(3 + "2"); //32

多个加号,运算顺序是从左至右

<script>
var a = 3;
var b = 2;
var c = 5;
console.log( a + b + c); //10
console.log( a + b + 'c'); //5c
console.log( 'a' + a + b + 'c'); //a32c
console.log( 1 + 2 + "a" + "(3 + 4)"); //3a(3 + 4)
</script>

运算从左到右计算,默认是数字加分,但是一旦遇到字符串就变成字符串拼接了

三、数据类型转换

JS中有一些方法可以将内存中表示其他数据类型转换为对应的数字类型。

因此,先认识一个语句prompt(),这个语句和alert差不多,也是弹窗,弹的是输入框

prompt("请输入你的电话","191");

这些小功能,就叫做程序给我们提供的API,每个API都有自己不同的语法。

prompt("提示文本","默认值");

默认值是可以省略的。

可以把用户输入的值,存入变量:

var a = prompt("请输入你的电话","191");
alert("你输入的电话是" + a);

用prompt接收的任何东西都是字符串,哪怕用户输入了一个数字,也是字符串的数字。

(一)转number

1.Number方法

(1) string "12px"=>NaN ""=>0

(2) boolean true=>1 false=>0

(3) null null=>0

(4) undefined undefined =>NaN

(5) {} {} => NaN

(6)[] [1]=>1, []=>0, [1,2]=>NaN

(7) function Number(function(){})=>NaN

例子:

// 计算器
// 第一步让用户先输入第一个数字
var a = prompt("请输入第一个数字");
// 第二步让用户输入第二个数字
var b = prompt("请输入第二个数字");
// 第三步求和
var sum = Number(a) + Number(b);
// 第四步弹出结果
alert(sum);

2.parselnt方法

parseInt就是将一个string转为一个整数,不四舍五入,直接截取整数部分。如果这个string有乱七八糟的东西,直接截取前面数字部分。

所以使用这个方法可能会丢失小数部分

var a = "678";
var b = parseInt(a); //parseInt就把字符串678转换为数字678
console.log(b); //678
console.log(typeof b); //unmber parseInt("200"); //200
parseInt("200.666"); //200
parseInt("200小时"); //200
parseInt("200年零2个月"); //200
parseInt("200px"); //200
parseInt("-200.9999"); //-200

parseInt()不仅能够转为整数,还可以进行进制的转换,把任何进制的数字,都换为10进制。

进制转换的字符串,用逗号隔开。

下面的运算结果都是15:

	parseInt(15,10);
parseInt(17,8);
parseInt(1111,2);
parseInt("0xf",16);
parseInt("f",16);
parseInt(16,9);
parseInt("15e6",10);
parseInt("15*6",10);

3.parseFloat方法

parseFloat就是将字符串转换为浮点数

尽可能的将一个字符串转为浮点数,浮点数之后如果有乱七八糟的内容,直接舍弃。

var a = "123.456.12";
var b = parseFloat(a);
console.log(b); //123.456
console.log(parseFloat("123.66年")); //123.66
console.log(parseFloat("你说123.66年")); //NaN

也就是说,数字类型都是number,不分整数和浮点数,但是转换的时候分。

4.isNaN()方法

作用:判断一个数字是不是NaN

如果是,则结果是ture;如果不是,则结果是false

isNaN()方法的作用是判断数字是不是NaN,那它能判断其他数据类型吗?

isNaN(true) ==> false

isNaN('12.5px') ==> true

isNaN(null) ==> false

isNaN(undefined) ==> true

结论:

isNaN()这个方法会先把其他类型数据转化成数字类型,之后判断是不是NaN

(二)转string

将一个数字,与一个空字符串进行连字符运算,那么就是自动转为字符串了。

var a = 123;
var b = a + "";
console.log(b);
console.log(typeof b); //string

(三)转boolean

Boolean()方法

只有六种情况Boolean(被转换的数据)的结果是false,其余全是true。

1.0 数字0

2.NaN 数字NaN

3."" 空字符串

4.false 布尔值false

5.undefined undefined类型

6.null null类型

用的不多了解几个。。。

02-JS中的数据类型及类型转换的更多相关文章

  1. js中的数据类型

    JS中的数据类型: ——数字  (number)NaN ——字符串(string) ——布尔  (boolean)——函数  (function)     也是对象的一种 ——对象  (object) ...

  2. JS中的数据类型和转换

    一.JS中的数据类型 js中的数据类型可以分为五种:number .string .boolean. underfine .null. number:数字类型 ,整型浮点型都包括. string:字符 ...

  3. Javascript高级编程学习笔记(3)—— JS中的数据类型(1)

    前一段时间由于事情比较多,所以笔记耽搁了一段时间,从这一篇开始我会尽快写完这个系列. 文章中有什么不足之处,还望各位大佬指出. JS中的数据类型 上一篇中我写了有关JS引入的Script标签相关的东西 ...

  4. 如何判断js中的数据类型?

    js六大数据类型:number.string.object.Boolean.null.undefined string: 由单引号或双引号来说明,如"string" number: ...

  5. 如何判断js中的数据类型

    如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstri ...

  6. [转]如何判断js中的数据类型

    原文地址:http://blog.sina.com.cn/s/blog_51048da70101grz6.html 如何判断js中的数据类型:typeof.instanceof. constructo ...

  7. 浅谈js中的数据类型,使用typeof获取js数据类型

    JS中的数据类型 1):Undefined——值未定义 注:Undefined类型只有一个值,即特色的undefined.在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined ...

  8. 如何判断js中的数据类型(转)

    如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstri ...

  9. 判断js中的数据类型

    如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstri ...

随机推荐

  1. GaussDB(DWS)中共享消息队列实现的三大功能

    摘要:本文将详细介绍GaussDB(DWS)中共享消息队列的实现. 本文分享自华为云社区<GaussDB(DWS)CBB组件之共享消息队列介绍>,作者:疯狂朔朔. 1)共享消息队列是什么? ...

  2. 从头造轮子:asyncio之 run_until_complete (1)

    前言 今天开始聊一聊python3的asyncio.关于asyncio,大家肯定都有自己的理解,并且网上大神也把基础概念也解释的比较透彻. 本文写作的初衷,主要是理解asyncio的原理并且实现一遍. ...

  3. 【cs231n笔记】assignment1之KNN

    k-Nearest Neighbor (kNN) 练习 这篇博文是对cs231n课程assignment1的第一个问题KNN算法的完成,参考了一些网上的博客,不具有什么创造性,以个人学习笔记为目的发布 ...

  4. CF1494A ABC String 题解

    Content 给定 \(T\) 个仅包含大写字母 A,B,C 的字符串 \(s\).问你是否能够通过将每个 A,B,C 换成 (,) 中的一个(同一个字母必须要换成同一个字符),使得最后得到的括号序 ...

  5. LuoguP7426 [THUPC2017] 体育成绩统计 题解

    Update \(\texttt{2021.3.11}\) 修复了一个笔误. Content 太长了,请直接跳转回题面查看. 数据范围:\(n\leqslant 10^4\),\(0\leqslant ...

  6. 最强最全面的大数据SQL经典面试题(由31位大佬共同协作完成)

    本套SQL题的答案是由许多小伙伴共同贡献的,1+1的力量是远远大于2的,有不少题目都采用了非常巧妙的解法,也有不少题目有多种解法.本套大数据SQL题不仅题目丰富多样,答案更是精彩绝伦! 注:以下参考答 ...

  7. JAVA中价格金额的存储类型

    在java项目中,我们会遇到价格.金额的数据,这时候我们java中应该用BigDecimal类型,数据库用decimal类型, 长度可以自定义, 如18; 小数点我们项目中用的是2, 保留2位小数. ...

  8. JAVA获取当前日期指定月份后(多少个月后)的日期

    环境要求:使用jdk1.8 package com.date; import java.text.ParseException; import java.text.SimpleDateFormat; ...

  9. 鱼书_第一章_Python入门

    Python版本 Python有Python 2.x和Python 3.x两个版本.两个版本不兼容,可能出现用Python 3.x编的代码不能被Python 2.x执行的情况. Python安装 An ...

  10. ubuntu查系统信息及系统服务

    系统信息 uname -a               # 查看内核/操作系统/CPU信息 cat /etc/issue           # 查看操作系统版本 cat /proc/version ...