一、常用知识点
1、赋值
var x=10
y=x
console.log(x) #10
console.log(y) #10
2、比较运算符
== | ===
console.log("5"==5)#True 只做值比较
console.log("5"===5)#False 比较值及类型
!= | !==
console.log("5"!=5)#False 只做值比较
console.log("5"!==5)#True 比较值及类型
二、分支语句
1 、if 分支语句
var salary=prompt("请输入所发工资");
if (salary>0){
console.log("发工资了,开始还债了");
salary-=10000;
if (salary>0){
console.log("我要去美丽的土耳其");
}
else if (salary==0){
console.log("我又是大穷逼了");
}
else{
console.log("欠债还钱。。。。,还欠%d",-salary);
}
}else
{
console.log("我的工资还没有发")
}
2、switch语句
格式:
switch (条件表达式(结果为整数或者字符串的表达式)){
case 值1:代码块;break;#break可以省略
case 值2:代码块;break;
default:代码块3
}
语法:
var num=prompt("请输入一个自然数:") #默认输入的是字符串类型
var num=+num #将num从字符创类型转化成整数类型
switch (num){
case "0":console.log("用户输入的是0");break;
case "1":console.log("用户输入的是1");break;
case 1:console.log("用户输入的是整数1");break;
default:console.log("用户输入的是非0、1的自然数");
}
var month=+prompt("请输入月份:")#%d只能进行整型的插入,+将输入转化成整型
switch (month){
case "1":case "3":case "5":case "7":case "8":case "10":case "12":console.log("%d的天数是31天",month);break;#若没有break,会继续向面运行,打印下面的两条信息
case "4":case "6":case "9":case "11":console.log("%d月的天数是30天",month);break;
default:console.log("%d的天数是28天",month);
}
三、循环结构
1、格式:(所有的for循环都可以转化成while循环)
#while循环
while (条件表达式){
代码块
}
#while 循环
var count=0;
while (count<5){
console.log("hello javascript!!");
count++;
}
#for循环
for (var i=0;i<5;i++){
console.log("hello javascript!!")
}
#####定义变量及条件变化可以向外提出来,不过分号不能提出来
var i =0
for (;i<5;)i++{
console.log("hello javascript!!")
}
2、break | continue的用法
#结果跳过了i=3的打印
for (var i=0;i<5;i++){
if (i==3) continue;
console.log("hello javascript!!")
}
#结果只打印i=0,1,2
for (var i=0;i<5;i++){
if (i==3) break;
console.log("hello javascript!!")
}
3、do while循环(无论条件成不成立,循环体都会执行一次)
var num=0;
do{
console.log("javascript");
num++;
}while(num<5);
4、for …. in 循环
四、异常处理
try{
代码块;
}catch(条件){
代码块;
}
finally{
代码块;
}
五、函数
1、定义:具有特定功能的代码块
2、函数分类
无参函数
function f1(){
console.log()
}
f1();
有参函数
function f1(a,b){
console.log("两数之和:",a+b)
}
f1(2,3);
匿名函数
#将函数的运行结果赋值给一个变量
var f3=function (){
console.log()
}
f3()
匿名函数的自调用
(function (){
console.log("ddd")
})()
匿名函数的用法(产生局部空间)
<script>
(function (){
let num=10
})()
#{
let num=10;#另一种产生局部空间的方法
}
</script>
<script>
console.log(num) #通过匿名函数产生局部空间,下面就调用不到局部空间里面的变量
</script>
3、函数只能返回一个值,若想返回多个值,可以放到一个容器中返回
六、函数的包
#为了使用函数的局部变量
function fn1(){
var num=10
function fn2(){
return num
}
return fn2
}
var fn1_1=fn1()
var num=fn1_1()
console.log(num)
====>10
七、js面向对象
1、语法结构
var obj={
#属性
name:"alex",
#方法
teach:function(){
console.log();
}
}
#+++++++++++++++
#调用name属性
console.log(obj.name)
#执行函数
obj.teach()
2、构造函数
1、概念:构造函数采用大驼峰命名方式
//ES5语法
function Person(name){
this.name=name;
this.teach:function (){
console.log(this.name)
}
}
#调用函数属性
var p1=new Person("alex");
var p2=new Person("tom");
console.log(p1.name);==>alex
console.log(p2.name);==>tom
p1.teach();===>alex
p2.teach();===>tom
2、类
//ES6语法
class Student{
//创建构造函数完成对象的声明和初始化
constructor(name){
this.name=name;
}
teach(){
console.log(this.name)
}
//类方法
static fn(){
console.log("我是类方法。。。")
}
}
//实例化类的对象
let sut1=new Student("alex");
//使用类的属性和方法
console.log(sut1.name)
sut1.teach()
//调用类方法
Student.fn()
//功能类(工具类)一般都编译为类的方法
class Tool{
static max(num1,num2){
return num1>num2?num1:num2;
}
}
console.log(Tool.max(666,888))