javaScript基础之数据类型
数据类型的分类:
1. 基础数据类型/简单数据类型:Number(数值型),String(字符串类型),Boolean(布尔类型),Null(空值),Undefined(未定义)
2. 引⽤数据类型/复杂数据类型:对象(Object类型)分为⼀般对象,Array,Function
检测变量的数据类型的两种格式:
1. typeof(变量);
2. typeof 变量;(注意中间有空格)
typeof(变量)检测数据返回的数据类型取值有(6种):
"number", "string", "boolean", "object", "function", "undefined".
<script>
typeof array/*
在JS中采⽤typeof(变量); 或者 typeof 变量;
来检测变量的数据类型是什么;
*/
var num = 12;
console.log(num, typeof (num)); //12 "number"
var str = "Karry";
console.log(str, typeof str); //Karry string
var b = true;
console.log(b, typeof (b)); //true "boolean"
var n = null;
console.log(n, typeof n); //null "object"
var d;
// undefined表⽰没有初始化的的变量
console.log(d, typeof (d)); //undefined "undefined"
// undefined 表⽰未定义的变量
console.log(typeof (a)); //undefined
</script>
Number类型:主要是数值型,⽤于存储数据,参与数学运算。
主要有:整数,⼩数,负数,⼆进制,⼋进制,⼗六进制等都是数值型;
声明⽅式: var num = 1; (var 变量名 = 数值;)
特殊的Number类型:
1. NaN: 表⽰不是⼀个数字,任何不能正常进⾏数学运算的或不能得到正常数字的都返回NaN;
2. ⽆穷⼤/⽆穷⼩:Infinite/-Infinity
3. ⼩数相加会有偏差 ⽐如0.1+0.2 !==0.3 ; 0.1 + 0.2 ===0.30000000000000004
var num = 3;
console.log(num, typeof num); //3 "number"
// ----------------------------------------------
var num1 = 3 / 0;//Infinity "number"
var num1 = -3 / 0;//-Infinity "number"
console.log(num1, typeof num1);
// ----------------------------------------------
var num2 = 3 / '4'; //0.75 "number"
var num2 = 3 * '4'; //12 "number"
var num2 = 3 - '4'; //-1 "number"
/*
如果是数字字符型的会转换成数值型然后计算
*/
// 乘除减⼀个⾮数字类型的值全都会返回NaN
var num2 = 3 / 'a';
var num2 = 3 / 'a';
var num2 = 3 - 'a';
console.log(num2, typeof num2); //NaN "number"
// --------------------------------------------------
// 加则表⽰拼接字符串
var num3 = 3 + 'a';
console.log(num3, typeof num3); //3a string
// ---------------------------------------
// var num4 = NaN;
// var num4 = NaN / 2;
// var num4 = NaN * 2;
// var num4 = NaN - 2;
// var num4 = NaN + 2;
var num4 = NaN - "w";
var num4 = NaN + "w";
// NaN和任何数据类型进⾏运算时候,返回值全为NaN 且是数值类型
/
/ 除了拼接字符串除外...
console.log(num4, typeof num4); //NaN "number"
</script>
String数据类型:即字符串类型,是指⽤引号引起来的数据,单引号和双引号都可以。'' , "" 。
注意,当我们从input等表单控件中获取的⽤户输⼊的内容数据,均为字符串类型。
字符串.length; 获取当前字符串的长度;
字符串.charAt(下标) : 获取字符串对应下标下的内容,下标从0开始;
/*
声明⽅式:var str = '';/"";
引号⾥⾯可以写内容
String数据类型有两个⽅法
获取字符串的长度 .length;
获取字符串的下标 charAt(); 下标从0开始计算,ie7及其以下获取到的为undefined值
*/
var str = "123321";
console.log(str.length);//6
console.log(str.charAt(1));//2
</script>
Boolean类型:即布尔值类型;取值只有false和true两种类型的值。
<script>
/*
布尔数据类型:只有有个取值:true false;
声明⽅式:var flag = true;
var flag = false;
*/
var flag = true;
var flag = false;
console.log(flag, typeof flag);
console.log(10 > 100);//false
console.log(10 > 1);//true
</script>
Null类型和Undefined类型:
Null类型取值是⼀个关键字null,注意Null和NULL都是变量
<script>
// Null:变量的值为空。如果⼀个变量你将来准备给它⼀个对象,但是现在没有给,我们就可以把它声明为null
// Undefined:变量声明了没有赋值
var n = null;
console.log(n, typeof n); // null 'object'
var u;
console.log(u, typeof u); // undefined 'undefined'
</script>
null和undefined的区别
1、undefined是申明了,未赋值,null是值为空,是准备在将来存储为⼀个对象的;
2、undefined的typoef返回的是undefined,null的typeof返回的是object;
3、undefined转成数字是NaN,null转成数字是0;
Object对象:Object是复杂数据类型,在页⾯中获取的所有元素都是对象类型。可以
说万物皆对象。
1. 对象的声明有两种⽅式,第⼀种使⽤new关键词创建⼀个对象;第⼆种使⽤var o = {}; {}⾥⾯写键值对,键值对以逗号分隔开来;
2. 函数。声明函数,调⽤函数。函数是function;
3. 数组array。var arr = [可以存储任何类型的数据]; 数组以[]来声明。
<script>
// ⾃⼰创建对象
var o = {
name: 'karry',
age: '21',
}
//使⽤关键字new创建⼀个对象
var obj = new Object();
console.log(o, typeof o); //Objectage: "21"name: "karry"__proto__: Object "object"
// ----------------------------------------
// 数组数组⾥⾯可以存储任何数据
var arr = [0, 2, 'sdksdka', ['weq'], { age: 213, name: 'sad' }];
console.log(arr, typeof arr); //(3) [0, 2, 3] "object"
// ---------------------
// 函数
function fn() {
/
/ alert('你好');
}
console.log(fn(), typeof fn());//会先调⽤fn函数,然后控制台打印 undefined "undefined"
console.log(fn, typeof fn);
/*
ƒ fn() {
alert('你好');
} "function"
*/
</script>
数据类型的强制转换:
其他数据类型转Number类型:
⽅式⼀: 采⽤Number(变量名) 进⾏强制转换成数值型
字符串转数值型:
如果是纯数字字符串转数值型,则取值为对应的数字内容;
如果不是串数字还有其他字符,则返回NaN
如果是空串 "" 或者 " " 多个空格的字符串 均返回 0 值
布尔值类型转数值型:
false>>0 ;
true>>1 ;
null返回0
undefined返回NaN
对象数据类型: 转换成数值型 均返回为NaN
2.⽅式⼆: 采⽤parseInt(变量,进制) 可以根据进制来转换数字 且为整数
采⽤parsrFloat(变量) ⽅法来进⾏转换 转换为浮点型 保留⼩数
变量可以包含数字和其他字符,此⽅法会从第⼀个开始尽可能多的读取数字内容,遇到其他字符 则不再读取转换。 parsrFloat 只读取⼀个⼩数点后的数字内容 多了也不再读取
所以⾸字母不为数字的话,则返回均为NaN
<script>
// 字符串转数值型
// var str = "123ad"; //NaN
// var str = "123"; //123
// var str = ""; //0
var str = " "; //0
// console.log(Number(str));
// =========================================
// 布尔值类型转数值型:
// var b = false; // 0
var b = true; // 1
// console.log(Number(b));
// ===========================================
//
var c = null; //0
var c = undefined; //NaN
// console.log(Number(c));
/
/ ==============================
var obj = {
name: 'karry',
age: '21',
}//NaN "object"
var arr = [12, 32, 'aea']//NaN "object"
// console.log(Number(obj), typeof obj);
// console.log(Number(arr), typeof arr);
// ================================================================
var s1 = "123.213.213px";
var s2 = "0123.213px";
var s3 = "a0123.213px";
var s4 = "123px";
// console.log(parseInt(s1)); //123
// console.log(parseFloat(s1)); //123.213
// console.log(parseInt(s2, 8)); //83 8进制转换
// console.log(parseInt(s2)); //123
// console.log(parseFloat(s2)); //123.213
console.log(parseInt(s3)); //NaN
console.log(parseFloat(s3)); //NaN
console.log(parseInt(s4)); //123
console.log(parseFloat(s4)); //123
</script>
转字符串String类型
⽅式⼀: String(变量);
⽅式⼆: 变量.toString();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论