javascript笔记1(基本数据类型)
一、数据类型
ECMAScript有5种简单数据类型(基本数据类型):Undefined、Null、Boolean、Number、String,还有一种复杂数据类型:Object;
1.1 typeof操作符
typeof操作符是检测数据类型的,有些时候,typeof操作符会返回一些令人迷惑但技术上却正确的值;
//typeof检测字符串,返回的是"string"类型; var str="hehe"; console.log(typeof str);//"string"; //typeof检测数字类型,返回"number"; var num=5; console.log(typeof num);//"number"; //typeof检测undefined类型,返回"undefined"; console.log(typeof undefined);//"undefined"; //typeof检测NaN类型为number;因为NaN类型为number类型; console.log(typeof NaN);//"number"; //typeof检测函数时,返回"function"; function fun(){}; console.log(typeof fun);//"function"; //typeof 检测null,返回类型为"object"; console.log(typeof null);//"object"; //typeof检测数组是返回的是object对象; var arr=[]; console.log(typeof arr);//"object";
1.2 Null数据类型
Null 类型是第二个只有一个值得数据类型,这个特殊值为null,null值表示一个空对象指针,所以用typeof 操作符检测类型会返回object;
//null 用来表示尚未存在的对象; var name=null; console.log(typeof name);//"object";
1.3 Undefined
Undefined也只有一个值得数据类型,这个是就是undefined,表示定义了该变量而未赋值(初始化);
var name; console.log(name);//undefined; //undefined 类型检测; console.log(typeof name);//"undefined"; //typeof 操作符检测未声明的变量,返回的也是undefined; console.log(typeof yy);//"undefined"; //undefined值是派生自null的值,因此它们的相等性返回true; console.log(null==undefined);//true; //由于null值类型为Null,undefined值类型为undefined,所以它们类型不相等; console.log(typeof null==typeof undefined);//false; //所以=== undeined和null 不完全相等; console.log(undefined===null);//false;
1.4 Boolean类型
Boolean类型的值有两个,一个是true和false,true和false是区分大小写的,True和Flase(以及其他混合大小写形式)都不是Boolean值,知识标识符;
//要将一个值转换为Boolean值类型,可以调用Boolean(); console.log(Boolean("dddd"));//true;
1.5 Number类型
//NaN非数字类型;
//1、NaN与任何值都不相等,包括NaN本身;
console.log(NaN==NaN);//false;
//NaN用typeof检测NaN类型为number;
console.log(typeof NaN);//"number";
//isNaN检测是否为非数字;
console.log(isNaN(NaN));//true
console.log(isNaN(undefined));//true;
console.log(isNaN("34"));//false;
//备注:isNaN方法会调用valueOf方法把参数强制转化为数字,然后再进行非数字判断;
//es6新增了Number.isNaN()方法,该方法比isNaN可靠,他不会强制转回,只会判断参数是数字时,且值为NaN时才会返回true;
console.log(Number.isNaN("37"));//false;
//数字类型转转;
//1、Number()方法;
console.log(Number("33"));//33;
console.log(Number("fff"));//NaN;
console.log(Number(""));//0
console.log(Number(0xfff));//4095;
//parseInt()方法转换为整数,该方法有两个参数,第一个参数为需转换的值,第二个参数为需转换为多少进制;默认是转换为10进制;
parseInt("123blue");//123;
parseInt("");//NaN;
parseInt(22.5);//22;
parseInt("070");//该为8进制数,转换为10进制数为56;
//parseFloat()转换为浮点数;
parseFloat("1234blue"); //1234 (整数)
parseFloat("22.5"); //22.5
1.6 String类型
1.6.1 字符串的定义
//1、字符串的定义; var str="hehe";
1.6.2 substring()和substr()和slice(),字符串的截取;
/** *substring(),substr(),都有两个参数,第一个为截取字符的起始索引,第二个参数为截取字符的结束索引; *当只有一个参数时,结束索引默认为最后索引; **/ var num="123456789"; num.substring(0,5);//"12345"; num.substr(0,5);//"12345"; num.slice(0,3);//"123"; num.substring(6);//"789"; num.substr(6);//"789"; num.slice(6);//"789"; /** *substring和substr和slice不同点; **/ //1、起始索引大于结束索引; var num="123456789"; num.substring(6,5);//"6";substring该方法会在截取前交换参数,小的为起始索引; num.substr(6,5);//"789";substr该方法会把结束索引变为最后一位索引; num.slice(6,3);//"";slice方法,起始索引大于结束索引,返回空字符串; //2、当起始或结束索引小于0; var num="123456789"; num.substring(-1,6);//"123456";//默认把负数变为0; num.substring(6,-1);//"123456";//默认把负数变为0,起始索引大于结束索引,索引截取前会变换位置; num.substr(-1,6);//"9",起始索引为负数时,截取最后一位; num.substr(6,-1);//"",结束索引为负数时,返回为空字符串; num.slice(6,-1);//"78";slice方法,结束索引为负数时,会把结束索引变为倒数的索引; num.slice(6,-2);//"7";slice方法,结束索引为负数时,会把结束索引变为倒数的索引; num.slice(-1,2);//"";slice方法,起始索引为负数时,返回为空字符串;
1.6.3 字符串的分割split();
//split()方法能把字符串转换为数组,参数为分割的符号;
var str="1,2,3,4";
str.split(",");//[1,2,3,4];
1.6.4 字符串的查找indexOf();
//indexOf()该方法能查找匹配第一个字符的索引,该方法参数为查找的字符
var str="123456789";
str.indexOf(3);//2;
var str="1233456789";
str.indexOf(3);//2;
//indexOf(),查找匹配无该字符,则返回-1;
var str="1233456789";
str.indexOf("f");//-1;
1.6.5 toLocaleUpperCase()和toLocaleLowerCase();字符串大小写转换;
//把字符串转换为大写; var str="hehe"; str.toLocaleUpperCase();//"HEHE"; //把字符串转换为小写; var str="HEHE"; str.toLocaleLowerCase();//"hehe";
浙公网安备 33010602011771号