JavaScript学习记录(一)
JS的3种书写位置:
行内:
<html >
<body>
<input type="button" value="唐伯虎" onclick="alert('秋香姐')">
</body>
</html>
内嵌:
<html>
<head>
<script>
alert('沙漠骆驼');
</script>
</head>
</html>
外部:
<html >
<head>
<script src="my.js"></script>
</head>
</html>
js文件中:
alert('如果我是DJ,你还爱我吗')
vscode注释快捷键
1、单行注释,使用“Ctrl + /”;
2、块注释,使用“Alt+Shift+A”。
快捷键可在设置中修改
JS的输入输出
<html>
<head>
<script>
//这是一个输入框
prompt('请输入你的年龄:');
//alert 弹出警示框 输出的 展示给用户的
alert('计算的结果是:');
//console 控制台输出 给程序员测试用的
console.log('我是给程序员看的QAQ');
</script>
</head>
</html>
点确定:
点确定,打开检查(F12):
变量
<script>
var age;
age = 22,myname = '神里凌华的狗';
console.log(age);
console.log(myname);
</script>
<script>
var myname = prompt('你的名字是:');
alert(myname+'是要当海贼王的男人!');
</script>
JS当中变量可以不定义直接赋值,但会变成全局变量:
<script>
p = 3;
console.log(p);
</script>
数据类型
JS的数据类型,是在程序运行过程中,根据“=”后面的类型自动确定。并且可以改变:
<script>
var x = 10;//x是数字型
x = 'kalise';//x是字符串型
</script>
简单数据类型
数字型
进制表示:
<script>
//在数字前加'0'表示八进制
var num1 = 010;
console.log(num1);
//在数字前加'0x'表示十六进制
var num2 = 0xa;
console.log(num2);
</script>
infinity无穷大;NaN,(not a number),非数字值;
函数isNaN():
isNaN() 函数用于检查其参数是否是非数字值。
如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。
字符串型
'kalise’和"kalise",单引号和双引号都可以;注意嵌套使用;
<script>
var str = '"天降"又胜"青梅"';
</script>
转义符:’'
\n 换行;\ 斜杠;’ 单引号;" 双引号;\t 缩进tab;\b 空格blank;
检测获取字符串的长度:length
<script>
var str = 'My name is kalise';
console.log(str.length);//17
</script>
字符串的拼接:‘+’
<script>
var age = 22;
console.log('kalise'+true);//kalisetrue
console.log('12'+12);//1212
console.log('kalise'+' '+'is OK');//kalise is OK
console.log('kalise今年'+age+'岁了');//kalise今年22岁了
</script>
布尔型boolean
true当1;false当0
undefined和null
如果一个变量声明未赋值,就是undefined未定义数据类型
<script>
//undefined
var variable = undefined;
console.log('kalise' + variable);//kaliseundefined
console.log(variable + 1);//NaN
//null 空值
var space = null;
console.log('kalise' + space);//kalisenull
console.log(space + 1);//1
</script>
检测变量的数据类型 typeof
<script>
var num = 10;
console.log(typeof num);//number
var str = 'kalise';
console.log(typeof str);//string
var flag = true;
console.log(typeof flag) ;//boolean
var vari = undefined;
console.log(typeof vari);//undefined
var timer = null;
console.log(typeof timer);//object
</script>
prompt 取过来的值是 字符型的
<script>
var age = prompt('请输入你的年龄:');
console.log(typeof age);//string
</script>
还可以通过浏览器的控制台输出结果判断数据类型:
圆珠笔色的是num;黑色的是字符型;墨水蓝色的是布尔型;undefined和null是浅灰色的;
数据类型转换
数字 + ‘字符串’ = ‘字符串’;
数字 - ‘字符串’ = 数字;
数字 * ‘字符串’ = 数字;
数字 / ‘字符串’ = 数字;
转换为字符串
1.toString(); 2.String()强制转换; 3.+‘字符串’
<script>
var num = 10;
console.log(num.toString());
console.log(String(num));
console.log(num+'');
console.log(num);
</script>
转换为数字型
1.parseInt()和parseFloat() 2.Number(); 3.隐式转换
<script>
//parseInt(变量)只能得到整数;parseFloat(变量)可以得到浮点型
console.log(parseInt('3.14'));//3 (数字型)
console.log(parseInt('120px'));//120 会去掉单位px
console.log(parseInt('rem120'));//NaN 开头便是字符,不能转换
console.log(parseFloat('3.14'));//3.14 (数字型)
console.log(parseFloat('120px'));//120 同上
console.log(parseFloat('rem120'));//NaN 同上
//Number(变量)
console.log(Number('123'));
//运用-*/隐式转换(不能+)
console.log('123'-0);
</script>
做两个简单的案例:计算年龄 和 简单加法器
计算年龄:
<script>
var year = prompt('请输入你的年龄:');
var age = 2022 - year;
alert('你今年'+ age +'岁了');
</script>
简单加法器:
<script>
var sum = 0;
var num = prompt('请输入加数:(直接回车结束计算)');
while(num != ''){
num = num - 0;
if(isNaN(num)){
alert('请正确输入!')
}
else{
sum=num+sum;
}
num = prompt('请输入加数:(直接回车结束计算)');
}
alert("计算结果是:" + sum ) ;
</script>
转换为布尔型
Boolean()函数
1.空字符(’’),0,NaN,null,undefined 会转化为false;
2.其他都会转化为true
拓展阅读:
解释型语言:比如js,通过解释器直接执行
编译型语言:比如Java,通过编译器生成中间代码文件,然后执行
标识(zhi)符:
关键字:
保留字:
课后作业:
依次询问并获取用户的姓名、年龄、性别,并打印用户信息:
<script>
var stu = {
name : prompt('请输入你的姓名:'),
age : prompt('请输入你的年龄:'),
sex : prompt('请输入你的性别:')
};
alert('你的姓名是'+stu.name+'\n你的年龄是'+stu.age+'岁\n'+'你的性别是'+stu.sex);
</script>
运算符
1.算数运算符:+,-,*,/ 以及:(假设y=5)
运算符 | 例子 | x运算结果 | y运算结果 |
---|---|---|---|
% | x = y%2 | 1 | y=5 |
++ | x = y++ +1 | 6 | 6 |
x = ++y +1 | 7 | 6 | |
-- | x = y-- +1 | 6 | 4 |
x = --y +1 | 5 | 4 |
运算符 | 例子 | 等同于 | 运算结果 |
---|---|---|---|
/= | x/=y | x=x/y | x=2 |
%= | x%=y | x=x%y | x=0 |
3.比较运算符:==,!=,>,<,>=,<= 以及:(假设x=5)
运算符 | 描述 | 比较 | 返回值 |
---|---|---|---|
=== | 绝对等于(值和类型均相等) | x==="5" | false |
x===5 | ture | ||
!== | 不绝对等于(值和类型有一个不相等,或两个都不相等) | x!=="5" | ture |
x!==5 | false |
4.逻辑运算符:&&,||,!
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | ( ) |
2 | 一元运算符 | ++ , – , ! |
3 | 算法运算符 | 先 * , /, % 后 + , - |
4 | 关系运算符 | > , >= , < , <= |
5 | 相等运算符 | == , != , === , !== |
6 | 逻辑运算符 | 先&& 后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
浮点数在算数运算中会有问题,我们不能直接拿着浮点数来进行比较是否相等,如下:
<script>
console.log(0.1 + 0.2);//0.30000000000000004
console.log(0.07*100);//7.000000000000001
var num = 0.1 + 0.2;
console.log(num==0.3);//false
</script>