js-数据类型简介

为什么需要数据类型
在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型
变量的数据类型
变量用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值存储到计算机的内存中。JavaScript是一种弱类型或者说动态语言。这意味着不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。
js的变量数据类型是在程序运行过程中,根据等号右边的值来确定的

var age = 10; //数字类型
var str= "pink"; // str 字符串类型

在代码运行时,变量的数据类型是由JS引擎根据 = 右边变量住的数据类型进行判断的,运行完毕,变量就确定了数据类型。
JavaScript拥有动态类型时,同事也意味着相同的变量可用作不同的类型:

var x = 6;  //x为数字
var x = "Bill";  //x为字符串

数据类型的分类
简单数据类型(Number,String,Boolean,Undefined,Null)
复杂数据类型(object)

情况说明结果
var age; console.log(age)只声明不符值undefined
console.log(age)不声明 不赋值 直接使用报错
age=10;console.log(age);不声明 只赋值10
简单数据类型说明默认值
Number数字型,包含 整型值和浮点型值,如21、0.210
Boolean布尔值类型,如true、false,等价于1和0false
String字符串类型,如“张三”注意js里面,字符串都带引号""
Undefinedvar a; 声明了变量a但是没有给值,此时a=undefinedundefined
Nullvar a = null; 声明了变量a为空值null
Number数字类型
var num = 10; //num数字类型
var PI = 3.14; //PI数字型
//八进制 0~7 程序里面数字前面加0 表示八进制
var num1 = 010;      //010   八进制  转换为10进制 就是8
//十六进制   0~9  a~f    数字的前面加  0x  表示十六进制
var num3 = 0x9    //输出为9
var  num4 = 0xa   //输出为10

总结:在js中八进制前面加0,十六进制前面加0x

数字型范围
js中数值的最大和最小值

alert(Number.MAX_VALUE);  //1.7976931348623157e+308   //数字型的最大值
alert(Number.MIN_VALUE);   //5e-324    //数字型的最小值
alert(Number.MAX_VALUE*2);   //Infinity   无穷大
alert(-Number.MAX_VALUE*2)   //-Infinity   无穷小
alert('pink' - 100)    //NaN   非数字

IsNaN()
用来判断一个变量是否为非数字的类型,返回true或者false

//isNaN()   用来判断非数字    并且返回一个值  如果是数字返回的是false  如果不是数字返回的是true
alert(isNaN(12));   //返回false
alert(isNaN(‘你好’));  //返回true

字符串string
字符串可以是引号中的任意文本,其语法为双引号""和单引号’’

var strMsg = "你好";     //使用双引号表示字符串
var strMsg2= '你好';     //使用单引号表示字符串
//常见错误
var strMsg3 = 您好;  //报错,没使用引号,会被认为是js代码,但js没有这些语法 

由于HTML标签里面的属性使用的是双引号,JS更推荐使用单引号
字符串引号嵌套
JS可以用单引号嵌套双引号,或者用双引号嵌套单引号(外双内单,外单内双)

var strMsg = '我是"高富帅"程序员';   //可以用''包含""
var strMsg2 = "我是'高富帅'程序员";   //可以用""包含''
//常见错误
var badQuotes = 'What on earth?";  //报错,不能单双引号搭配

字符串转义符
类似HTML里面的特殊字符,字符串中也有特殊字符,我们称之为转义符。
转义符都是\开头的,常用的转义符及其说明如下:

转义符解释说明
\n换行符,n是newline的意思
\\斜杠\
\’'单引号
\""双引号
\ttab缩进
\b空格,b是blank的意思

字符串长度
字符串是由若干字符组成的,这些字符的数量就是字符串的长度。通过字符串的length属性可以获取整个字符串的长度

//检测获取字符串的长度 length
var str = 'my name is andy'
console.log(str.length); // 输出15

字符串的拼接
● 多个字符串之间可以使用 + 进行拼接,其拼接方式为字符串 + 任何类型 = 拼接之后的新字符串
● 拼接前会把与字符串相加的任何类型转成字符串,再拼接成一个新的字符串

<script>
        console.log('沙漠' + '骆驼'); //字符串的拼接   输出内容沙漠骆驼
        console.log('我今年' + 18 + '岁'); //字符串与数字的拼接  输出内容我今年18岁
        console.log('我是' + true); //字符串与布尔值的拼接  输出内容我是true
        console.log(12 + 12); //数字与数字的拼接   输出内容24
        console.log('12' + 12); //数字字符串+数值   输出内容1112
    </script>

“+” 号总结口诀:数值相加,字符相连

字符串拼接加强

//变量不能写到字符串里面,是通过和字符串相连的方式实现的
 var age = 18;
 //console.log('我今年age岁');   //不可这么写
 console.log('我今年' + age + '岁啦');

● 字符串和变量拼接会经常使用,因为变量可以很方便地修改里面的值
● 变量不能添加引号,加引号的变量会变成字符串
● 如果变量俩侧都有字符串拼接,口诀“引引加加”,删掉数字,变量加中间

布尔型 Boolean
布尔类型有俩个值:true和false,其中true表示真(对),而false表示假(错)。

<script>
        var flag = true; //flag布尔型  代表真(对)
        var flag1 = false; //flag1  布尔型  代表假(错)
        console.log(flag + 1); //true  参与加法运算当1来看   输出内容为2
        console.log(flag1 + 1); //false  参与加法运算当0来看 输出内容为1
    </script>

undefined

<script>
        //如果一个变量声明未赋值  就是undefined  未定义数据类型
        var str;
        console.log(str); //输出内容为undefined
        var variable = undefined;
        console.log(variable + 'pink'); //输出内容undefinedpink
        console.log(variable + 1); // undefined和数字相加 输出结果为NaN
         console.log(true + variable );  //输出结果为 NaN
    </script>

null

<script>
        var space = null;
        console.log(space + '你好');  //输出结果为null你好
        console.log(space + 11);   //输出结果为 11
        console.log(true + space);  //输出结果为 1
    </script>

获取变量数据类型
typeof可用来获取检测变量的数据类型

<script>
        var num = 10;
        console.log(typeof num); //number
        var str = '你好';
        console.log(typeof flag); //string
        var flag = true;
        console.log(typeof flag); //Boolean
        var vari = undefined;
        console.log(typeof vari); //undefined
        var timer = null;
        console.log(typeof timer); //object

        var age = prompt('请输入您的年龄');
        console.log(age);
        console.log(typeof age);    //输出结果为黑色18 为字符串类型
    </script>

数据类型转换
使用表单、prompt获取过来的数据默认是字符串类型的,由此不能直接简单的进行加法运算,而需要转换变量的数据类型。通俗来说,就是把一种数据类型的变量转换成另外一种数据类型。
通常实现的3中方式的转换:
● 转换为字符串类型
● 转换为数字型
● 转换为布尔型
转换为字符串

方式说明案例
toString()转成字符串var num = 1; console.log(num.toString());
String()强制换行转成字符串var num = 1; console.log(String(num));
加号拼接字符串和字符串拼接的结果都是字符串var num = 1; console.log(num + "我是字符串");
<script>
        var num = 1;
        console.log(num.toString()); //输出结果为黑色 1 表示为字符串
        var num1 = 1;
        console.log(String(num1)); //输出结果为黑色 1 表示为字符串
        var num2 = 1;
        console.log(num2 + "我是字符串"); //输出结果为 1我是字符串
    </script>

● 把数字类型转换为字符串类型 变量.toString()
● 利用string(变量)
● 利用 + 拼接字符串的方法实现转换效果 隐式转换

转换为数字型(重点)

方式说明案例
parseInt(string)函数将string类型转成整数数值型parseInt('78')
parseFloat(string)函数将string类型转成浮点数值型parseFloat('78.21')
Number()强制转换成函数将string类型转换为数值型Number('12')
js隐式转换(- * /)利用算术运算隐式转换为数值型'12'- 0
 <script>
        //1、parseInt(变量)可以把字符型的转换为数字型  得到是整数
        console.log(parseInt('3.14')); // 输出结果为3 取整 会去掉后面的小数点
        console.log(parseInt('120px')); //输出结果为120  取整  会去掉px
        console.log(parseInt('rem120px')); //NaN
        //2、parseFloat(变量)可以把字符型的转换为数字型 得到是小数  浮点数
        console.log(parseFloat(3.14)); //输出结果为3.14
        //3、利用Number(变量)
        var str = '123'
        console.log(Number(str)); //输出结果为123
        console.log(Number('12')); //输出结果为12
        //4、利用了算数运算 - * /  隐式转换
        console.log('12' - 0); //输出内容为数字12
        console.log('123' - '120'); //输出内容为数字3
    </script>

注意:
● parseFloat和parseInt单词的大小写
● 隐式转换是在进行算数运算时,JS自动转换了数据类型,注意不含“+”

转换为布尔型

方式说明案例
Boolean()函数其他类型转成布尔值Boolean('true')
● 代表空、否定的值会被转换成false,如''、0、NaN、null、undefined” ● 其余值都会被转换为true
<script>
        console.log(Boolean('')); //false
        console.log(Boolean(0)); //false
        console.log(Boolean(NaN)); //false
        console.log(Boolean(null)); //false
        console.log(Boolean(undefined)); //false
        console.log(Boolean('小白')); //true
        console.log(Boolean(12)); //true
    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值