JavaScrip基础知识

变量

程序在内存中申请的一块用于存放数据的空间。

变量的使用

1.声明变量 var age;
2.赋值 age=10;
3.输出结果 console.log(age);
4.变量的初始化 /声明变量并赋值

数据类型

js的变量数据类型根据右边变量的值来判断,在程序运行过程中,类型会被自动确定。

简单数据类型

Number 数字型,包含整型值和浮点型值 0
Boolean 布尔值类型 false
String 字符串类型,字符串都带引号 “ ’‘
Undefined var a;声明a但没有给值 undefined
Null var a=null;声明a为空值 null

函数isNaN()验证输入是否为非数字

该函数接收一个参数,可以是任意数据类型,然后判断这个参数是否"不是数值"。把一个值传给isNaN()后,该函数会尝试把它转换为数值。任何不能转换为数值的值都会导致该函数返回true。

简单操作

\n换行 \t缩进 \b空格

javascript的输入输出

1.document.write:文档中打印输出
2.alert:浏览器弹窗输出
3.prompt:浏览器弹窗输入
4.confirm:浏览器弹窗确认
5.console.log:浏览器控制台输出

转换字符型

利用+拼接字符串

转换为数字型

parseInt(变量)可以把字符型转成数值型 得到是整数

转换为浮点数值型

parseFloat(变量)把字符型转换成数值型 得到是小数

计算年龄案例

弹出一个输入框(prompt),让用户输入出生年份
var year=prompt(' ');
把用户输入的值用变量保存起来,用今年的年份减去变量值,结果就是现在的年龄
var age=2020-year;
弹出警示框(alert),输出结果
alert(age);

转换为布尔型

使用Boolean函数

递增和递减运算符

前置++num;先自加再返回原值
后置num++;先返回原值再自加
sum += i; // sum = sum+i;

逻辑运算符

逻辑与(且)&& 两侧都为true,结果才是true 只要一侧为false。结果为false
逻辑或|| 两侧都为false,结果才为false
==等于
!=不等于

流程控制

if语句(多选一)

1.if的语法结构
if(条件表达式){执行语句}
执行思路:如果条件表达式为真则执行语句,如果为假则不执行括号的语句。

网吧案例

1.弹出prompt输入框,用户输入年龄,用变量保存输入的值
2.if语句判断变量是否大于18,大于则出大括号里的执行语句

if分支语句(二选一)

if(条件表达式){执行语句1
}else{执行语句2}

if else if语句(多条件,多选一)

if(条件表达式1){执行语句1
}else if(条件表达式2){执行语句2
}else if(条件表达式3){执行语句3
}else{最后的语句}

三元表达式

条件表达式?表达式1 : 表达式2
执行思路:若条件表达式结果为真 则返回表达式1的值;若为假 则返回表达式二的值
var num=10;
var result=num>5 ? '是的':'不是';
console.log(result);

switch分支语句(匹配,特定值)

switch(表达式){ //表达式经常写成变量
case 值1:
执行语句;
break;
case 值2:
执行语句2;
break;
default :
执行最后的语句;}

for循环 !!!一定要初始化变量,注意值的自增

while循环 !!!一定要用变量保存输入的值

do while循环(先执行循环语句再判断)

do{
循环体
}while(条件表达式)//若结果为true则继续执行,若为false则退出循环
break关键字 用于退出循环

数组

利用new关键字创建数组
利用数组字面量创建数组
获取数组元素 格式 数组名【索引号】

遍历数组

通过for循环

数组的长度

使用‘数组名.length’访问数组的数量 自动检测元素数量

数组中新增元素

修改length长度(undefined)
修改索引号,没被占用的追加数组元素(有值),被占用的是替换元素

冒泡排序

函数

1.声明函数
function 声明函数的关键字,小写
2.调用函数
函数名();

函数的封装(打包)

函数的参数(个数不限)

function 函数名(形参1,形参2){ //形参用于接受实参 形参可以看做是用声明的变量 形参1=实参1
执行语句;}
函数名(实参1,实参2);

函数的return值(返回给函数的调用者)

举例:求任意两数和
function getSum(num1,num2){
return num1+num2;}
console.log(getSum(1,2));
return终止函数;只能返回一个值,返回的结果是一个值
没有return返回undefined

arguments的使用

存储所有传递过来的实参

冒泡排序

函数间的相互调用

函数的声明方式

函数表达式 (匿名函数)
var 变量名=function(){执行语句;}
函数表达式也可以进行传递参数 用arugments

作用域

全局变量:全局都能使用
局部变量:只能在函数内部使用
注意:在函数内部,没有声明直接被赋值的变量也属于全局变量,函数的形参也可以看做局部变量
全局变量和局部变量的区别:全局变量只有在浏览器关闭时才会被销毁,比较占内存;局部变量当代码块结束后就会被销毁,更节省内存

对象

利用对象字面量创建对象
调用对象的方法: 对象名.方法名
利用new Object创建对象

构造函数

function 构造函数名(){
this.属性=值;
this.方法=function(){}
}
new 构造函数名();
对象的实例化:创建构造函数对象的实例化的过程
new关键字
遍历对象通过for in :
举例:for (var k in o) // k 得到的是属性名 0[k]得到的是属性值

内置对象

Math.random对象随机数方法
Date()方法的使用:获取当前时间必须实例化必须new
获得Date总的毫秒数(时间戳):
1.console.log(Date.now());
2.var date1=+new Date(); console.log(date1);
倒计时 使用到的转化公式:
d =parseInt(总秒数/60/60/24);
h=parseInt(总秒数/60/60%24);
m=parseInt(总秒数/60%60);
s=parseInt(总秒数%60);
数组对象的创建
1.利用数组字面量
2.利用new Array()
检测添加或删除数组元素的方法
1.push()在数组末尾 添加一个或多个数组元素 //可以用来筛选数组
(1)push可以给数组追加新的元素
(2)push()参数 直接写 数组元素就可以
(3)push完毕后,返回的结果是新数组的长度
举例:arr.push(4);
2.unshift()在数组开头添加元素
3.pop()删除数组最后一个 元素
(1)pop()没有参数
(2)pop完毕后,返回的结果是删除的那个元素的值
4.shift()删除数组第一个元素
翻转数组arr.reverse();
数组排序:
arr.sort(function(a,b){
return a-b; }); 升序的顺序排列
数组索引 :
indexOf(数组元素)返回第一个满足条件的索引号,若找不到该元素则返回的是-1
lastIndexOf(数组元素)从后面开始查找

数组去重

数组转换成字符串:toString、join('分隔符')
字符串的不可变
根据字符返回位置 举例:arr.indexof('春',3) 从索引号是3的位置开始往后查找
根据位置返回字符 :
1.charAt()返回指定位置的索引号
2.charCodeAt()返回相应的索引号的字符ASDII值 目的:判断用户按下了哪个键
3.str()
注意:if(对象名[变量值]{} 表判断对象里面有没有这个变量值,得到的是属性值
多个字符里截取字符: substr(2,2)第一个2是索引号 从第几个开始,第二个2是取几个字符
实现举例:console.log(str.substr(2,2));
1.替换字符 replace('被替换的字符','替换为的字符')它只会替换第一个字符
2.字符转换为数组 split('分隔符')

简单类型与复杂类型

简单数据类型:存放在栈里面 里面直接开辟一个空间存放的是值
复杂数据类型:(需要new),首先在占里面存放地址 十六进制表示 然后这个地址指向堆里面的数据
1.栈:存放简单数据类型
2.堆:存放复杂数据类型

----20211204

posted @ 2022-03-06 14:07  Bughead  阅读(40)  评论(0编辑  收藏  举报