<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jsDAY1</title>
<script>
// 一共三个
// 输入语句:prompt
// 输出语句:
// alert弹出警示框给用户
// console.log在网页内部代码中的console控制台中提示给程序员的
prompt('请输入年龄');
alert('请举手');
console.log('程序员看的');
// 变量可以将输入的数据存储下来,内存空间,一个装东西的盒子
// 声明变量,赋值
var age;//声明一个名称为age的变量
// variable变量的意思
// 赋值
age = 18;
// 输出
console.log(age);
// 声明一个变量并赋值叫变量初始化
var myname = 'pink';
console.log(myname);
var myname = prompt('请输入你的名字');
alert(myname);
// 一次声明多个变量
var age = 'zhuyu',
mname = 16,
address = '地球';
// 只声明不赋值,默认是undefined
// 不声明不赋值会报错
// 不声明直接赋值可以使用
// 变量命名规则:关键字不用,严格区分大小写,不以数字开头,变量名最好有意义,遵守驼峰命名法,首字母小写其他大写,中间不能有空格。
// 18交换两个变量的值 核心是临时变量temp
var temp;
var apple1 = 1;
var apple2 = 2;
temp = apple1;
apple1 = apple2;
apple2 = temp;
alert(apple1);
alert(apple2);
// 19变量小节,变量是存储数据的内存空间,变量使用先声明再赋值,变量命名规范,交换两个变量temp
// 20数据类型,因为不同数据间占用存储空间不同,所以需要不同数据类型,变量的数据类型,js属于弱类型语言,只有在运行时才确定该变量是什么数据类型。通过值确定。而其他语言是一开始就定好了。
// JS是动态语言 变量的数据类型可以变化
var nub = 12;
// 数字型
nub = 'shiwu';
// 字符串型
// 22数据类型的分类:1简单数据类型、2复杂数据类型
// 1,简单数据类型:
// number 数字型 默认值0
// boolean 布尔值类型 默认值false
// string 字符串型 默认“”
// undefined var a 声明了变量a却没有给值,这时a=undefined
// null var a=null 声明了变量a并且为空值 null
// 了解八进制、十六进制
// 1.八进制 0~7 在程序里 数字加0表示八进制
//var numb1 = 010;
console.log(numb1);//010 八进制 转化十进制就是8
//var numb2 = 012;
console.log(numb2);//012 八进制 转化十进制就是10
//十六进制 0 ~ 9 a ~ f #ffffff 数字的前面加0x表示十六进制
var numb3 = 0x9;
console.log(numb3);// 0x9 十六转十进制就是 9
var numb4 = 0xa;
console.log(numb4);//0xa 十六转十进制就是 10
//数字型的最大值
console.log(Number.MAX_VALUE);//1.7976931348623157e+308
//数字型的最小值
console.log(Number.MIN_VALUE);//5e-324
//三个特殊值 无穷大、无穷小、非数值
console.log(Number.MAX_VALUE * 2);//无穷大 infinity
console.log(-Number.MAX_VALUE * 2);//无穷小 -infinity
console.log(NaN);//非数字
// 数字型
console.log(isNaN(2)); //false
console.log(isNaN('zy'));// true
//如果为非数字,返回true 如果不是非数字,返回false
//字符串型 单双引号都可以 不加会报错
// 在js中推荐用单引号 html中双引号
// 如果要使用引号嵌套,那么外双内单,外单内双(外层的引号不会显示)
console.log("zhuyuy'我'zhusadiua");
// 转义字符需要写在引号中
var str9 = "转义字符的'sdf'我\n是氨基酸荻花"
console.log(str9);
// 转移字符的'sdf'我
// 是氨基酸荻花
// 换行\n tab \t
// 案例弹出警示框
alert('酷热难耐,火辣的太阳底下,我挺拔的身姿,成为了最为独特的风景,\n我审视四周,这里,是我的舞台,我就是天地间的王者,\n这一刻,我豪气冲天,终于大喊一声:"收破烂啦~"');
// 26字符串长度及拼接
var str0 = 'my name is zy!';
console.log(str0.length);//14空格 符号也算
// 检测字符串长度 点length
// 字符串拼接 直接在两个字符串中间 放加号
console.log('acb' + 'asd');// acbasd
console.log('acb' + 144324); //acb144324
console.log('acb' + true); //acbtrue
console.log(12 + 12);//24
console.log('12' + 12);//1212
//只要字符串和 其他类型拼接,结果都是字符串类型
//字符串拼接加强
console.log('zy' + 18);//zy18
console.log('zy' + 18 + '岁');//zy18岁
var age1 = 18;
console.log('zyage岁');//zyage岁
//变量通过拼接方式 和句子一起输出,而不是写在字符串中 引引加加
console.log('zy' + age1 + '岁');//zy18岁
//28案例
var age2 = prompt('请输入您的年龄');
alert('您今年' + age2 + '岁啦');
// boolean型
var flag = true;
var flag1 = false;
console.log(flag + 1);//2 true相当于1
console.log(flag1 + 1);//1 false相当于0
// 声明变量但是未赋值 默认为undefined
var s;
console.log(s);//undefined
var variable = undefined;
console.log(variable + 'zy');//undefinedzy
console.log(variable + 1);// NaN
// undefined类型加数字 结果 非数字
var space = null;
console.log(space + 'zy');//nullzy
console.log(space + 1);//1
// null类型加数字 结果是数字
// 测试类型 typeof
var num1 = 1;
console.log(typeof num1);//number
var str1 = 'zy';
console.log(typeof str1);//string
var flag3 = true;
console.log(typeof flag3);//boolean
var vari = undefined;
console.log(typeof vari);//undefined
var timer = null;
console.log(typeof timer);//object
var age3 = prompt('请输入你的年龄');//prompt收入是字符串的
console.log(age3);
console.log(typeof age3);//string
// 字面量 通过控制台输出的颜色 判断数据类型
//从字面看上去是什么值
console.log(1);
console.log('1');
console.log(true);
console.log(undefined);
console.log(null);
// 数据类型转换 从prompt收集是字符串
// 1转换为字符串
var numb5 = 10;
var str = numb5.toString();//变量.toString()
console.log(str);
console.log(typeof str);
console.log(String(numb5));// String(变量)
console.log(numb5 + '');// + 拼接字符串 隐式转换
// 2转换为数字型
// 1,parseInt(变量) 字符转为数字型 得到整数
console.log(parseInt('3.14'));//3
console.log(parseInt('3.94'));//3
console.log(parseInt('120px'));//120
console.log(parseInt('rem120px'));//NaN
// 2,parseFloat(变量) 字符转为数字型 得到浮点数
console.log(parseInt('3.14'));//3.14
console.log(parseInt('120px'));//120
console.log(parseInt('rem120px'));//NaN
//3 Number(变量)
var str2 = '123';
console.log(Number(str2));//123
console.log(Number('123.7'));//123.7
//4利用算数运算 - * / 隐式转换
console.log(Number('123' - 0));//123
console.log(Number('123' - '120'));//3
console.log(Number('123' * 1));//123
// 3转换为布尔型
// Boolean()
console.log(Boolean(''));//false
// 0、NaN、null、undefined 都是false 其余是true
//案例1计算年龄
var year = prompt('请输入您的出生年份');
var age4 = 2023 - year;
console.log('您今年' + age4 + '岁了')
//案例2简单加法器
var numb11 = prompt('请您输入第一个数字');
var numb12 = prompt('请您输入第二个数字');
var sum = Number(numb11) + Number(numb12);
console.log(numb11 + '+' + numb12 + '=' + sum);
// 编译型语言 解释型语言 解释型语言像涮火锅 解释一句运行一句
// 编译型语言 先全部编译再全部运行
// 标识符关键字保留字
// 标识符就是自己取的名字 关键字保留字都是系统已经定好了的标志 最好避开
// js作业p40
// 1交换两个变量的值 temp需要中间值去保留其中一个变量的值 具如下
var temp;
var a1 = 1;
var a2 = 2;
temp = a1;
a1 = a2;
a2 = temp;
console.log(a1);
console.log(a2);
// 2获取姓名 年龄 性别 并打印
var name1 = prompt('请输入您的姓名');
var year1 = prompt('请输入您的年龄');
var sex1 = prompt('请输入您的性别');
alert('您的姓名:' + name1 + '\n' + '您的年龄:' + year1 + '\n' + '您的性别:' + sex1);
</script>
</head>
<body>
</body>
</html>