JavaScript笔记
概念
一种运行在客户端(浏览器)的编程语言,实现人机交互的效果
作用
网页特效(监听用户行为让网页作出反馈)、表单验证(判断合法性)、数据交互(获取后台数据,渲染到前端)、服务端编程(node.js)
组成
ECMAScript(语言基础)、Web APIs(DOM、BOM)
书写位置
行内:
<button onclick="alert('好好好')">点击</button>
内部
<script>
// 页面会弹出警示框
alert("你好");
</script>
外部
alert('你好吗')
<script src="书写位置.js"></script>
输入输出
输出
document.write('')
在页面上显示,里面可以加盒子(加盒子或者里面有相关元素的话引号要用··且相关元素要用${}包裹)
alert('')
用对话框显示,里面加相关元素时要用${}包裹,且外围引号为··
console.log('')
控制台显示,里面加相关元素时要用${}包裹,且外围引号为··
输入
prompt('')
在对话框显示需要输入的内容
显示顺序
alert和prompt比较先显示,剩下的按代码顺序显示
字面量
数字字面量
eg:123
字符串字面量
eg:‘123’、‘你好’
数组字面量
eg: arr=[]
对象字面量
变量
概念
计算机用来存储数据的容器(html的盒子属于其中的一种)
声明
let (变量名)=(初始值)
数组:let (数组名)=[每个元素的值]
规范
只能_、字母、数字、$组成名字,且数字不能开头
大小写能区分为两个不同的变量
命名多个单词组成的名字时,第一个单词小写,第二个单词大写
不能有中文
常量
声明
const (常量名)=(值)
注:声明的时候必须要赋值,且后续不能改变这个值
基本数据类型
数字型(number)
JavaScript是一门弱数据语言,而JAVA是一门强数据语言,所以JavaScript不会区分数字的具体类型,统称为number,而JAVA会分为很多种
如果运算无法进行,则会输出NaN,NaN也是数字型数据,代表的是非数字(+可以拼接字符串和数字,其他的不行)
NaN和任何数字计算都会返回NaN
字符串型(string)
一般推荐使用''包裹字符串
若字符串里面有引号,则可以用""包裹,或者"\' '\"(转义符)
字符串拼接:+(字符串和字符串拼接、字符串和数字拼接)
boolean型
true/false
// 用法一
let isCool = true;
document.write(isCool);
// 用法二
let isTrue = 3 < 4;
console.log(isTrue);
undefined未定义型
不能进行计算
let num;
console.log(num);
console.log(num + 1);
null 空类型
可以是任何类型来跟确定的类型计算或者拼接
let obj = null;
console.log(obj);
console.log(obj + 1);
console.log(obj + "你好");
检测数据类型
console.log(typeof(obj));
ps:使用表单和prompt获取的所有东西(包括数字和true/false)都默认为string
数据类型转换
隐式转换
+两边只要有一个字符串,另外所有也会默认为字符串,一整个式子就会被默认为字符串
除了+号其他的的式子一边有数字,整个式子就是以数字的类型计算并显示出结果
显式转换
在所有类型值前加+都可以转换为数字型(所有类型字符串都可以)
Number()//强制转化为数字型
parseInt:只保留整数(在字符串中如果最前面有数字,然后这个是数字和字符串的组合,则这个会忽略字符串只输出数字,但是如果字符串开头,则会输出为NaN)
parseFloat:可以保留小数(跟parseInt对字符串的处理一样,只是可以保留小数
语句
表达式和语句
表达式:可以被求值,可以写在赋值语句的右侧
语句:用来直接执行,不一定有值
分支语句
if语句
if (3 == 4) {
console.log("true");
} else {
console.log("false");
}
三元运算符
console.log(3 > 5 ? 3 : 5);
3 > 5 ? alert(true) : alert(false);
let sum = 3 < 5 ? 3 : 5; //5
alert(sum);
switch语句
let num = prompt("请输入");
// 转成数字型
switch (+num) {
case 1:
alert("1");
break;
case 2:
alert("2");
break;
case 3:
alert("3");
break;
}
循环语句
while(不明确循环次数)
while (i <= 100) {
document.write(`${i} `);
sum1 += i;
i++;
}
for(明确循环次数)
for (let i = 1; i <= 100; i++) {
document.write(`${i}<br/>`);
}
break&continue
break:结束所有循环
continue:本次循环结束(continue下面代码不执行),继续下一轮循环(一般用于跳过某一轮循环)
冒泡排序
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}