数据类型
回顾:Java中的数据类型分类:
A.基本数据类型
B.引用数据类型
新课:JS同上,完全一致。
回顾:
Java中的基本数据类型:
1字节:byte boolean
2字节:char short
4字节: int float
8字节:long double
Java中的引用数据类型:
String 数组(Array) 任何Class,不管是你写的类还是JAVA自带的类。
JavaScript的基本数据类型:
number 注意:number是数据类型但不是关键字
string 注意:string在java是引用,在JS是基本
boolean
null
undefined
bigint
symbol
JavaScript的引用数据类型:
数组 Object 函数(方法) 等等
//boolean读布尔
//js的boolean和java的boolean完全一致
//体现在:都是基本数据类型 都只有true和false
//意义:用程序表示一件事成功或者失败,或表示一个条件成立或不成立。
//JavaScript中严格区分大小写,因此true和false值只有全部为小写时才表示布尔型。
//js中的number(读数值类型)讲解
//一句话总结:即可以存放小数,也可以存储整数
// var a = 123;
// var b = 12.5;
//a和b都是number类型.没有加引号
//js中的string(读字符类型)讲解
//这里要注意:
//js的String和java的String不同之处1:
// string在java是引用,在JS是基本
//js的String和java的String不同之处2:
// string在java中通过双引号声明
// string在js 中既可以通过双引号也可以通过单引号声明
//例如:
var str1 = "你好";
var str2 = '我好';
//以上都是string的写法
转义符
//我想在页面输出: 你好,我的外号是"大聪明";
// document.write("你好,我的外号是"大聪明";");写法是错误的.不能同时存在多个双引号
//做法1:我们需要知道 单引号里面可以包着双引号
// document.write('你好,我的外号是"大聪明";');
//做法2:通过转义符-- 反斜杠(enter上面的):\ 斜杠:/ (shift左边的)
document.write("你好,我的外号是\"大聪明\";");
//常见的转义符:
//见7_常见转义符.png
null和undefined
// null 表示空的意思 例如:
var str = null;
//null的注意事项:没有任何属性或方法可言
//undefined 表示未定义的意思 只声明了变量但是未赋值
//例如:
var str123 ;//这个str123就是undefined
bigint和symbol
//bigint 翻译:大数值
//如果存在需求需要计算很大很大(不用去记,因为很大。)数字,那么number将无法实现
//例如:下面的number绰绰有余
// var num1 = 1111111;
// var num2 = 2222222;
// console.log(num1+num2);
// var num1 = 11111111111111111111;//number
// var num2 = 11111111111111111111;//number
// console.log(num1+num2);//计算结果出现了误差
//所以就需要借助于bigint
//bigint类声明方法:
// var num3 = 1111111111111111111n;//只需要在最后加n即可
// var num4 = 1111111111111111111n;//只需要在最后加n即可
// console.log(num3+num4);
//symbol讲解:略 常用于独一无二的对象
数据类型检查
var num = 11;//number
var str = "11";//string类型
console.log(num);
console.log(str);
//以上写法:是我们可以看到的.所以可以知道是什么类型.
//但是缺点1:不方便在控制台得知是什么类型
//例如我们第一章节学习的prompt语法
// var money = prompt("请输入你的金额");//通过money变量接受用户在前台输入的值
// console.log(money);//所需我们就要学习如何识别xx变量是什么类型
//总结:prompt的返回值都是string
//如何判断一个变量是什么类型
//语法: typeof xxx 返回是一个数据类型
var str = 123;
console.log( typeof str);//number
str = "123";
console.log( typeof str);//string
//为什么要学习数据类型转换?见一下例题:
// var num1 = prompt("请输入第一个数");
// var num2 = prompt("请输入第二个数");
// alert("两数之和为" + (num1 + num2));//这种写法是错误的
//原因:prompt返回的是一个string类型,两个string类型相加,是以拼接的形式
//如何将字符串转成number类型.
//js提供了下面三个方法,各有区别,都要掌握
// parseInt()
// parseFloat()
// Number()
//parseInt 将一个字符串类型的数字解析成整数
// alert( parseInt("11.12") );//11
// alert( parseInt("11.99") );//11 总结1小数后面直接省略,不会四舍五入
// alert( parseInt("11.a12") );//11 总结2小数后面直接省略
// alert( parseInt("11a.a12") );//11 总结3:解析顺序从左到右,解析到非数字就停止.
// alert( parseInt("1a1a.a12") );//1 总结4:只需要记住总结3
// alert( parseInt("a11a.a12") );//NaN NAN 翻译: not a numnber 不是一个数字
//parseFloat()和上面的语法完全一致,唯一区别保留小数
// console.log( parseFloat("11.11") );//11.11
// console.log( parseFloat("11.11a") );//11.11
// console.log( parseFloat("11.1a1a") );//11.1
// console.log( parseFloat("11a.11") );//11
// console.log( parseFloat("a11.11") );//NAN
// console.log( parseFloat("11.a") );//11
//Number()只能将真正的数字解析
// console.log( Number("11.11") );//11.11
// console.log( Number("11") );//11
// console.log( Number("11") );//NAN
//猜数字游戏:由管理员声明一个数字(1~100);
//用户通过prompt输入进行猜测.根据猜测结果进行反馈,是大了还是小了.,
//直至猜对.
//游戏规则如下:
//4个人参加.,每人都加2分, 猜对的那个人,指定另外三个人中的一个玩一把课堂惩罚小游戏.
var num = Math.random() * 100+1;//(0,100)
num = parseInt(num);
var begin = 1;
var end = 100;
while(true){
var n = prompt("请输入你要猜的数字。取值范围为" + begin + "~" + end);//string
n = Number(n);//此时的n才是number类型
if(n>num){
alert("你猜大了");
end = n;
}else if(n<num){
alert("你猜小了");
begin = n;
}else{
alert("你猜对了");
break;
}
}
随机数
// for(var i = 1 ; i<=1000 ;i++){
// var num = Math.random();
// console.log(num);
// }
//总结:Math.random()这个方法返回的是一个 0-1的随机数 (0,1)
//如果说想生成1-100的随机数
for(var i = 1 ; i<=1000 ;i++){
var num = Math.random() * 100+1;//(0,100)
console.log(parseInt(num));//得知:0-99
}