首先要了解什么是js
js是一种运行在客户端的弱类型脚本语言
注释
js中注释分为单行注释和多行注释
单行注释 :就是//被注释的代码不会执行
多行注释:就是/**/,一次可以注释多行代码
//alert('123456') 单行注释用ctrl+/
/*
alert('holle word')
alert('holle word')
alert('holle word')
alert('holle word')
alert('holle word')
*/
输出语句
alert()弹出一个警告框,括号里面填弹出内容;
console.log()在控制台中打印你想打印的内容,括号里面填写你要输出的内容
document.write()在页面中直接显示你要输出的内容,括号里面填写你要显示的内容
alert('你好');
console.log('我不好');
document.write('今天天气真好')
变量
变量的特点:一个变量只能保存一个值,当你给他第二个值的时候,第一个值就会被覆盖
var a = 1;
// var 定义变量的关键字;
// 关键字和变量名之间必须要用空格隔开
// a 变量名;
console.log(a); //不加引号就是输出a这个不变量
console.log('a'); //加上引号就是输出a这个文本
var a = 2;
console.log(a); //会覆盖第一个值,所以输出的是2
变量的命名规则
1.变量不能以数字开头;
2.变量名不能使用关键字和保留字;
3.js中严格要求大小写;比如a和A就不是用一个变量;
4.变量命名必须以字母,下划线或者”$”为开头。其他字符可以是字母,_,$或数字.
5.变量名不允许包含空格和其他标点符号;
6.同时声明多个变量时要用逗号隔开
var age = 18,
address = '天地会',
gongzi = 5000;
数据类型
1.1简单数据类型如:number(数值型),string(字符串),boolean(布尔),undefined(未定义),null(空)
1.2复杂数据类型如:object(对象),function(函数),Array(数组),Date(构造函数),RegExp(正则)
1.3通过typeof来判断数据的类型
var a = 2
console.log(typeof a); //number
var a1 = '2'
console.log(typeof a1); //string
var a3;
console.log(typeof a3); //undefined
var a4 = null;
console.log(typeof a4); //object
数据的类型转换
1.隐式转换
。通过运算转换
2.强制转换
。Number(转换成数值)
。String(转换为字符串)
。parseInt()取整 强制转换为number 如果第一个数不是数字则返回NaN 开头和结尾可以有空格
。parseFloat() 返回一个浮点数 并且强制转换为number 开头和结尾可以有空格 如果第一个数不是数字则返回NaN
。toString() 强制转换为字符串。
var a = 2.9;
var c = ' 1.9sasda'
var c1 = Number(c)
var b = String(a);
var a1 = parseInt(a)
var c2 = parseInt(c)//1
var c3 = parseFloat(c)//1.9
var a2 = parseFloat(a)//2.9
var a3 = toString(a)
console.log(typeof a); //number
console.log(typeof b); //string
console.log(typeof c1); //number
console.log(typeof c2);//number
console.log(typeof a3); //strimg
运算符
1.算数运算符
+(加) -(减)*(乘) /(除)%(取余) ++(自增) --(自减)
var a = 3;//3
a1 = a + 1;//4
a2 = a - 1;//2
a3 = a * 2;//6
a4 = a / 2;//1.5
a5 = a % 2;//1
console.log(a1, a2, a3, a4, a5);
console.log(a++); //先赋值后运算
console.log(++a); //先运算后赋值
2.逻辑运算符
&&(逻辑与)||(逻辑或)!(逻辑非);
除了false,0,null,undefined,' ' 都是真的
console.log(0 && 1); //0
console.log(false && true); //有一个为假就不往下执行
console.log(false || true); //有一个为真就不往下执行
console.log(!(false || true)); //对运行的结果取反
3.比较运算符
>(大于)<(小于)==(等于)===(全等)<=(小于等于)>=(大于等于)!=(不等于)!==(不全等)
console.log(1 > 2); //false
console.log(1 < 2); //true
console.log(1 <= 2); //true
console.log(1 >= 2); //false
console.log(1 == '1'); //true
console.log(1 === '1'); //false
console.log(1 != '1'); //false
console.log(1 !== '1'); //true
- 4.赋值运算符
=(等于) +=(加等于)-=(减等于)/=(除等于)*=(乘等于)%=(取余等于)
var a = 1;
a += 1 //相当于a=a+1
a -= 1 //相当于a=a-1
a *= 2 //相当于a=a*2
a /= 2 //相当于a=a/2
a %= 1 //相当于a=a%2
5.三元运算符
条件?代码1:代码2 如果条件为真就执行第一个否则就执行第二个
流程控制
流程控制就是控制我们的代码按照什么结构顺序来执行,以便达到不同的运算结果
。顺序结构
。分支结构
1if(),if else语句,if else if语句
var a = prompt('请问你今年多大了');
if (a < 18) {
console.log('你还未成年');
} else if (70 > a > 18) {
console.log('你成年了');
} else {
console.log('你已经是一个老年人了');
}
swicth
- case穿透。如果每一个case语句执行完毕之后,没有遇到 break , 让程序继续往下执行。
-
break的穿透 是从第一个满足条件的case开始进行穿透的
-
default可以写也可以不写
-
.switch语句,只能够判断准确的一个字面量值 不能够判断范围
var n = 18;
switch (n) {
case 18:
console.log('我已经成年了');
break;
case 17:
console.log('我还是未成年');
break;
default:
console.log('请输入一个数值');
}
。循环结构
循环的作用
-
简化代码,处理重复执行的代码
-
遍历数组
循环的要素
-
初始值 作为循环的开始
-
条件判断 决定要不要执行
-
要循环的语句
-
改变循环初始值 为了让循环停下来
while循环
var a = 0;
while (a < 5) {
console.log('我还会想你');
a += 1
}
do while循环
var n = 8;
do {
console.log('我被执行了');
n++;
} while (n < 10)
console.log('后续代码');
while 和 do while 的区别:while会先判断在执行而do while会先执行一边在判断。
for 循环
var a = 5;
for (var i = 0; i < a; i++) {
console.log(i);
}
for in循环用来遍历对象(object和arr)
arr = [1, 2, 3, 4, 5];
for (k in arr) {
console.log(k, arr);
}
同步和异步
- 同步会按照顺序执行,会堵塞
- 异步不一定按照顺序执行,不会堵塞
- 注意同步和异步同时出现会先执行同步
//异步
// setTimeout(function () {
// console.log(1);
// }, 100)
// setTimeout(function () {
// console.log(2);
// }, 50)
// setTimeout(function () {
// console.log(1);
// }, 0)
// console.log('2');
function getData(fn) {
let a;
setTimeout(function () {
a = 10 //服务器给的一份数据 10
fn(a)
},1000)
// return a;
}
// var num = getData()
// console.log(num);//?? undefined
//10???
getData(function(num){ //回调函数
console.log(num);
})
数组
- 数组是一种对象类型
- 定义数组
// var arr=[10,20,30]
var arr = new Array();
var arr0 = new Array(10, 20, 30);
var arr1 = new Array(10);//声明一个长度为10的空数组
console.log(arr);
console.log(arr0);
console.log(arr1);
数组的方法单独写了一篇,有兴趣的可以去看看