js每日学习笔记2022/12/5
js中多行注释快捷键:ctrl+shift+/
prompt('这是一个弹出框')
变量
// 声明变量的特殊情况
// 1.只声明不赋值
var age;
console.log(age); // undefined
// 2.不声明也不赋值
console.log(wary); // 报错: Uncaught ReferenceError: wary is not defined
// 3.不声明直接赋值
tel = 100;
console.log(tel) // 100
// 不使用name作变量名
数字型
// 1.八进制:0~7,在数字前面加0
var num8 = 010; // 8
// 2.十六进制 0~9 ,a~f 在数字前面加0x
var num16 = 0xa; //10
Number.MAX_VALUE; //数字型的最大数
Number.MIN_VALUE; //数字型的最小数
Number.MAX_VALUE+1; //Infinity
Number.MIN_VALUE-1; //-Infinity
console.log('123'-100); // NaN
//3.isNaN()方法判断非数字,返回值:非数字返回true,数字返回false
isNaN(12); // false
isNaN('122'); //false
isNaN('12test') //true
字符串型
// 1.字符串转义字符\开头,写在引号里面 \n 换行
alert('hello,\nhello')
// 2.length属性,检测字符串的长度
var str = 'hello, world'
str.length // 12
// 3.字符串的拼接+ 字符串和其他数据类型拼接,结果是字符串类型
console.log('12'+'test'); //12test
console.log('12'+12); //1212
console.log('12'+true); //12true
console.log(12+12); //24 加法
布尔型
true|false
console.log(true+0); //1
console.log(false+0); //0
var str=undefined; 、//未定义数据类型
console.log(str); // undefined
console.log(str+'wary'); //undefinedwary
console.log(str+1); //NaN undefined加数字结果为NaN
var space = null; //空值
console.log(null+'wary') //nullwary
console.log(null+1); //1
查看变量的数据类型
<script>
// js 的变量的数据类型在程序运行中,然后根据等号右边的值来确定
// js是动态语言,数据类型可以变化
var num = 10;
console.log(typeof(num));// number类型
//Object.prototype.toString.call(num); // [object Number]
// num instanceof Number; //false
num = '101';
console.log(typeof(num));// string类型
//Object.prototype.toString.call(num); // [object String]
// num instanceof String; //false
// 查看变量的数据类型
// 1.typeof(变量名),
// 识别所有值类型:number,string,boolean
// 识别所有函数类型,typeof(函数名),function
// 识别引用类型:对象,数组,null都返回object
// NaN:返回number
num = undefiened;
console.log(typeof(num));// object类型
num = true;
console.log(typeof(num));// boolean类型
//Object.prototype.toString.call(num); // [object Boolean]
// num instanceof Boolean; // false
// console.log(num.constructor); //ƒ Boolean() { [native code] }
num = {name:'wary',age:18}
console.log(typeof(num));// object类型
//Object.prototype.toString.call(num); // [object Object]
// num instanceof Object; //true
num = ['wary',18];
console.log(typeof(num));// object类型
//Object.prototype.toString.call(num); // [object Array]
// num instanceof Array; //true
num = null;
console.log(typeof(num));// object类型
//Object.prototype.toString.call(num); // [object Null]
typeof(f) // function
typeof(NaN) // number
function f(){
alert('hello')
}
// 2.Object.prototype.toString.call(变量),准确返回类型[Object 数据类型]
Object.prototype.toString.call(NaN) // [object Number]
Object.prototype.toString.call(f) // [object Function]
/* 3.instanceof()检测引用数据类型:
值类型返回false,
null,undefined 返回false,
array,object,function 返回true */
f instanceof Function; // true
//testArr instanceof Array; //true
/* 4.constructor属性判断值类型和引用数据类型 //Uncaught TypeError: Cannot read properties of null (reading 'constructor')
undefined,null 使用会报错 */
f.constructor; // ƒ Function() { [native code] }
</script>
来自–链接: js判断变量数据类型的几种常用方法
字面量
//一看就知道是什么数据类型
console.log(18);
console.log('18');
console.log(true);
console.log(undefined);
console.log(null);
console.log({});
console.log([]);
转换为字符串
//1.变量.toString(),把数字类型型转换为字符串类型
var num = 10;
var str = num.toString(); //str为string,num.toString()为string,num还是number
//2.String(变量)
String(num); // String(num)为string,num为string
//3.+拼接字符串,隐式转换
console.log(num+''); //字符串类型
转换为数字型
//1.parseInt(变量名) ,把字符串类型转换为数字类型,结果是整数
parseInt('3.14'); //3 只取整数部分'1.99'=>1
parseInt('120px'); //120 开始是数字,遇到字符串停止
parseInt('rem120px'); //NaN
//2.parseFloat(变量名),把字符串转换为浮点数(小数)数字类型
parseFloat('3.1415926') //3.1415926
parseFloat('120px'); //120 开始是数字,遇到字符串停止
parseInt('rem120px'); //NaN
//3.Number(变量名)
var str = '123';
Number(str); //123
//4.- * / 算数运算符 隐式转换
console.log('12' - 0); //12
console.log('12'-'12');//0
console.log('12'*1); //12
console.log('12'/1);//12
转换为布尔型
//Boolean(变量名)
Boolean(''); //false
Boolean(0); //false
Boolean(NaN); //false
Boolean(null);//false
Boolean(undefined);//false
Boolean('123'); //true
Boolean('wary'); //true