5.JavaScript变量类型及数据类型转换

五、变量的类型

5.1 概述

基本类型5

number 数字类型

string 字符串类型

undefined undefined类型,变量未定义时的值,这个值自己是一种类型

boolean     布尔类型,仅有两个值true false,讲if语句时我们细说

null null类型,这个值自己是一种类型,遇见时我们细说

引用类型

讲到再说

 

至于什么是引用类型,我们到时候见到再说。

5.2 typeof关键字

这个关键字,用来检测一个变量的类型。

1 var a = 100;

2 console.log(typeof a);

5.3 number类型

所有的数字都是number类型

1  <script type="text/javascript">

2  //下面定义的变量都是number类型

3  var a = 100;

4  var b = 234243245345;

5  var c = -345345435435;

6  var d = 345.3245234;

7  var e = .5e6;

8  var f = 0xff;

9  var g = 017;

10  var h = Infinity;

11  var i = NaN;

12 

13  console.log(typeof a);

14  console.log(typeof b);

15  console.log(typeof c);

16  console.log(typeof d);

17  console.log(typeof e);

18  console.log(typeof f);

19  console.log(typeof g);

20  console.log(typeof h);

21  console.log(typeof i);

22  </script>

 

JS中所有的数字都是number类型的,不在细分为整形int、浮点型float这些乱七八糟的东西。

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

 

5.4 string类型

1  var m1 = "哈哈";

2  var m2 = "123";

3  var m3 = ""; //空字符串,也是字符串

4  console.log(typeof m1);

5  console.log(typeof m2);

6  console.log(typeof m3);

 

 

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

1  var mm = 123;  //number

2  console.log(typeof mm);

3  mm = "哈哈";  //改为string是合法的

4  console.log(typeof mm);

 

 

我们说js这个语言叫做动态数据类型,原因就在这里,就是赋值的时候就决定这个变量的类型了。甚至可以改变这个变量的值,为其他类型的值。变量的类型是自动检测的,而不是人规定的

 

5.5 undefined类型

之前说过,一个变量只var过,没有赋初值,它的默认值是undefined;

这个undefined是自成一家,自己是自己的类型,它的类型也叫作undefinedundefined类型的值就只有undefined一个。

1 var nn;   //我只定义了,没有赋初值,所以就是undefined,类型也是undefined

2 console.log(nn);

3 console.log(typeof nn);

 

 

5.6 加号

加号是一个运算符,我们先提前说一下。

加号两边都是数字的时候,那么就是数学加法;两边不都是数字的时候,那么就是连字符,结果是字符串。

 

1 console.log("" + "");

 

 

1 console.log(1 + "2");

 

 

 

,因为2被引号引起来了,所以就是字符串,所以+就是连字符

 

1 var a = "1";

2 var b = "2";

3 console.log(a + b);

 

1 var a = 1;

2 var b = 2;

3 console.log("a" + b); //a2

 

 

多个加号,从左算到右:

1 var a = 1;

2 var b = 2;

3 var c = 3;

4 console.log("a" + a + b + "c");

 

 

1 var a = 1;

2 var b = 2;

3 var c = 3;

4 console.log(a + b + "c");

 

 

 

六、变量类型的转换

5.1 string → number

先来学习一个语句,这个语句和alert差不多,也是弹窗,弹的是输入框:

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

 

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

1 prompt(“提示文本”,”默认值”);

默认值可以省略。

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

1 var a = prompt("请输入你的电话","139");

2 alert("哈哈,你输入的电话是" + a);

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

 

有一些方法可以将内存中表示一个数字的字符串转换为对应的数字

parseInt()parseFloat()

 

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

1  var a = "123";

2  var b = parseInt(a); //parseInt就把字符串123转为数字123

3  console.log(b);

4  console.log(typeof b);

 

 

 

下面的实例结果都是123,最后一个是-123

1 parseInt("123") //123

2 parseInt("123.6")  //123

3 parseInt("123年都会很爱你")  //123

4 parseInt("12311") //123

5 parseInt("123px") //123

6 parseInt("-123.99999999") //-123

 

parseInt()不仅仅能够进行一个转为整数,更能进行一个进制的转换,把任何进制的数字,都换为10进制

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

下面的运算结果都是15

1  parseInt(15,10)

2  parseInt(17,8)

3  parseInt(1111,2)

4  parseInt("0xf",16)

5  parseInt("f",16)

6  parseInt(16,9)

7  parseInt("15e6",10)

8  parseInt("15*6",10)

 

parseInt如果不能转,那么就返回NaN

1 parseInt("Hello", 8);  

2 parseInt("546", 2);    

3 parseInt("三百六十五");

得到NaN的方法又多了一种,上午讲的是6/0得到Infinity0/0得到NaN

 

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

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

1  <script type="text/javascript">

2  var a = "123.67.88";

3  var b = parseFloat(a);

4  console.log(b);

5  </script>

 

 

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

 

5.2 number → string

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

1  var a = 123;

2  var b = a + "";

3  console.log(b);

4  console.log(typeof b);

 

七、数学运算符

运算符叫做operator,也可以叫做操作符。运算符有很多种,一元运算符、二元运算符;数学运算符、逻辑运算符……我们今天先学习数学运算符,比较简单

+ 加法

- 减法

* 乘法

/ 除法

% 取余数

( ) 括号

 

下面的结果都是3

1  console.log(1 + 2);

2  console.log(8 - 5);

3  console.log(1.5 * 2);

4  console.log(12 / 4);

5  console.log(13 % 5); //得几不重要,要的是余数

 

 

取余数这个运算,实际上也是除,要的是余数:

1 //取余数

2 console.log(12 % 3); //0

3 console.log(121 % 11); //0

4 console.log(5 % 8); //5

5 console.log(8 % 5); //3

6 console.log(5 % 5); //0

 

默认的计算顺序,先乘除,后加减。乘除取余是平级,先遇见谁,就算谁

1 console.log(1 + 2 * 3); //7

2 console.log(1 + 2 * 3 % 3); //1

3 console.log(1 + 2 % 3 * 3); //7

 

我们可以用小括号来改变计算先后顺序,注意没有中括号和大括号,一律用小括号。

1 var a = 4 * (3 + (1 + 2) * 3);

2 alert(a);

 

特殊的数字运算,很多公司在考,考你对面试的重视程度,因为这个知识实战中一辈子用不到。

 

JS中的数学运算符,就这么几个,如果你学过C,那么我提醒你,没有乘方^。如果你学过java那么我提醒你,没有取整除法\

 

乘法怎么算?

 

1 Math.pow(3,4);

 

这是一个新的API,记住就行了,后面的课程将会告诉你,Math是一个内置对象,pow是它的一个方法。

Math就是数学,pow就是power乘方。

 

 

1 var a = Math.pow(3,2 + Math.pow(3,6));

 

根号就是

1 Math.sqrt(81);

 

今天遇见的所有API

alert("哈哈");

prompt("请输入数字","默认值");

console.log("哈哈");

parseInt("123",8);

parseFloat("123");

Math.pow(3,4);

Math.sqrt(81);

posted @ 2020-03-06 15:53  横竖一丿  阅读(272)  评论(0)    收藏  举报