727笔记(数据类型,数据类型转换)

数据类型

变量存储的数据,可以是各种类型的数据

js变量的数据类型由值来决定

一、简单数据类

数字Number
var age = 23; //整数
var f = 23.5; //小数(浮点数)
isNaN()用来判断变量是否为非数字的类型,返回true(不是数字)或false

var usAge = 21;
var isOk = isNaN(usAge)
console.log(isOk)

---------------------------

var userName = "Lucy"
console.log(isNaN(userName))
字符串String

字符串可以是引号中的任意文本,语法是双引号 “ ” 和单引号 ' ',单双引号要错开使用

var str = hello
----------------
报错:hello is not defined
没有使用引号,会被认为是js代码,但是js没有这个语法

字符串转义符:类似于html中的特殊符号,字符串也有特殊符号,我们称为转义符

转义符都是以 \ 开头

\n 换行符
\\ 斜杠
' 单引号
" 双引号
\t tab缩进
\b 空格

检测字符串的长度使用 length()

var str = "my name is lucy"
console.log(str.length)

//空格也算长度

字符串拼接

只要由字符串和其他类型的变量/值拼接,最终的结果都是字符串类型,用“+”进行字符串拼接

console.log("沙漠"+"骆驼");   // 沙漠骆驼

console.log("丁鹿学堂"+13);  // 丁鹿学堂13

console.log("丁鹿学堂"+true);  //  丁鹿学堂true

console.log(12+13);  //  25 number

console.log(“12”+13);  //  1213

----------------------------------

var age = 12;
console.log("我的年龄是age岁"); 
//引号里的都是字符串,age在这里也是字符串的一部分

→ console.log("我的年龄是"+age+"岁")  
//引引相加,age作为变量处理
布尔类型Boolean

布尔类型有两个值:True 和 False

布尔型和数字型相加,true当1来看;false当0来看

var flag = true;
var flag1 = false;
console.log(flag+1); // 2
console.log(flag1+1); // 1
undefined和null

一个变量只声明,不赋值,值为undefined,数据类型也是undefined

(本地获取不到的时候会用到undefined)

var str;
console.log(str);

----------------
var str1 = undefined;  //直接给变量赋值undefined

console.log(str1+"hello");  //undefinedhello
console.log(str1+1); // 得到NaN(not a number)

一个声明的变量给null值,里面存的值为空(学习对象的时候会去研究null)

var space = null;
console.log(space + "hello"); //nullhello
console.log(space + 1);  // 1 (null会转为0相加)

二、复杂数据类型

三、获取变量数据类型

使用typeof获取变量的数据类型
var num = 12;
console.log(typeof num); //number

console.log(typeof "xiaoxiao"); //string

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

var boll;
console.log(typeof boll); //undefined

var bol2=null;
console.log(typeof bol2); //object

字面量

字面量是在源代码中一个固定值的表示法,通俗点说,就是字面量表示如何表达这个值

  • 数字字面量:3,2,5,6
  • 字符串字面量:"前端"
  • 布尔字面量:true false

数据类型转换

使用表单,prompt获取过来的数据默认都是字符串类型,不能进行简单的加法运算,需要进行数据类型转换

var s = prompt("请输入一个数字");  
console.log(s);
console.log(typeof s);

//点确定,给变量s输入的值;点取消,s的值为null

转换为数字型

  • parseInt / parseFloat()
  • Number()
parseInt(a) //转化为整型
console.log(parseInt(a)+4) //输入浮点数输出的还是整数,不应用四舍五入
"12.7"---12

----------------------------
parseFloat(b) //转化为浮点型
console.log(parseFloat(b)) // 输入字符串的整数输出的还是整数,输出的是小数输出的是小数

----------------------------
//parseInt和parseFloat从第一位开始判断能否转化成数字型
"123"---123
"123sss"---123
"ss23"---NaN
"2w2"---2

----------------------------
console.log(parseInt(true) //NaN
console.log(parseFloat(true) //NaN

----------------------------
Number() // 强制转化
console.log(Number(s));
"123"---123
"123sss"---NaN
"ss23"---NaN
"2w2"---NaN
"12.4"---12.4
有非数字部分就无法转化

-----------------------------
隐式转换(减法、乘法、除法),默认转化成数字型
console.log("23"-12); // 11
console.log("23"*12); //276
console.log("23"/12); //1.916666666...

转换为字符串型

  • .toString()
  • String()
var num = 78;
console.log(num.toString()); //"78"
console.log(typeof num.toString()); 

var flag = true;
console.log(typeof flag.toString())

强制转换String()
console.log(typeof String(90));   //string "90"
console.log(String(true);  //"true"

隐式转换:字符串拼接

转化为布尔型

  • Boolean()
console.log(Boolean(null)); //false
console.log(Boolean(undefined)); //false
console.log(Boolean(123));  //true
console.log(Boolean("123"));   //true
console.log(Boolean(""));   //false
console.log(Boolean(0));  //false
console.log(Boolean(1));  //true

//有值准换为true,没有值转化为false。0为false。

----------------------------------
隐式转换
console.log(true+0);  //1
console.log(false+0);  //0
console.log(true+1);  //2
console.log(false+1);  //1

posted on 2022-07-27 23:10  星野落  阅读(36)  评论(0)    收藏  举报

导航