一、基本语法
声明变量
var num = 98555;
数据类型判断
typeof()
typeof //推荐
返回值
boolean 布尔型
string 字符串
number 数值型
undefined 未定义
object 对象
function 函数
isNaN(判断变量是不是数字)
如果变量是个数字结果将显示为 flase
如果变量不是个数字结果将显示为 true
// 如果变量是一个数字
var n1 = 100;
console.log(isNaN(n1)); //=> false
// 如果变量不是一个数字
var s1 = 'Jack'
console.log(isNaN(s1)); //=> true
数据类型转换
转换为数字:
Number(变量)
注意:这边的布尔值也能转化true将会转换为数字1;flase将会转换为数字0;
别的不能转换的将会转换成NaN
转换数字的时候将会保留小数(强制转换)
ParseInt(变量)
转换成整数
从数字的第一位开始检查是数字就进行转换,知道不是数字的时候为止,所以不认识小数点只能转换成整数(如果首位不是数字将返回NaN)
parseFloat(变量)
转换成数字(保留小数点)
从第一位开始检查,是数字就转换,直到不是数字的时候结束(如果首位不是数字将返回NaN)
强制数据类型转换
运算符两边都是可运算数字才行,如果有一边是不能转换的将会返回NaN
转换为字符串
变量.tostring()
注意:有一些数据类型不能使用 toString() 方法,比如 undefined 和 null
String(变量)
所有数据都可进行转换
字符串拼接
字符串拼接: 只要 + 任意一边是字符串,就会进行字符串拼接
转成布尔
Boolean(变量)
在 js 中,只有 ’ '、0、null、undefined、NaN,这些是 false,其余都是 true
运算符
数学运算符(+、-、、/、%)
赋值运算符(=、+=、-=、=、/=)
比较运算符(>、<、>=、<=、= =、!=、= = =、!= =)
注意:
“=” 赋值
“= =” 比较:仅值相等就可以
“= = =” 比较:值和类型都要相等(全等)
逻辑运算符(&& 、||、!)
自增自减运算符(一元运算符)
二、分支结构
输出语句 (5种)
alert : 警告框:
// 作用:alert会弹出一个警告框
// 语法:alert(内容) //时候不加引号(纯数字、变量)
alert("hello world");
confirm : 确认框:
// 作用:confirm弹出一个确定框
// 语法:confirm(内容)
confirm("我帅吗?");
prompt : 输入框:
// 作用:prompt:弹出一个输入框,可以输入值
// 语法:prompt(内容)
prompt("请输入你的真实年龄");
document.write : 网页中写入内容:
// 作用:网页中写入内容(可以识别标签)
// 语法:document.write(内容)
document.write("hello world");
document.write("<h1>hello world</h1>");
打印:
// 作用:F12打开控制台,在console中可以看到打印的信息
// 语法:confirm(内容)
console.log("hello word");
流程控制
顺序结构:代码由上而下执行
分支结构:分支结构(也叫选择结构)根据不同的情况,执行对应的代码
循环结构:重复做一件事
if条件-分支结构
if判断:(判断)
if (条件) { // 条件指 写一个变量是否为成立, 或者 3 >2 最终得结果成立或不成立
// 写JS代码
// 只有条件成立才执行这里面的代码
}
if else 语句:(二选一)
if (条件) {
// 结果成立,执行的代码
} else {
// 结果不成立,执行的代码
}
// var num1 = +prompt('请输入第一个值');
// var num2 = +prompt('请输入第二个值');
// if (num1>num2) {
// console.log('num1大');
// }else{
// console.log('num2大');
// }
if else if … else 语句:(多条选一条)
if (条件1) {
// 条件1为真,执行的代码
} else if (条件2) {
// 条件2为真,执行的代码
} else if (条件3) {
// 条件3为真,执行的代码
}
....
else {
// 以上都不成立,执行的代码
}
// var age = +prompt('请输入你的岁数');
// if (age>70) {
// console.log('古稀');
// }else if (age>60) {
// console.log('老年');
// }else if (age>50) {
// console.log('中年');
// }else if (age>40) {
// console.log('壮年');
// }else if (age>30) {
// console.log('青年');
// }else if (age>20) {
// console.log('少年');
// }else if (age>10) {
// console.log('儿童');
// }else if (age>0) {
// console.log('婴儿');
// }
switch条件-分支结构
switch (要判断的变量)
{
case 值1: // 判断变量是否等于值
成立要执行的代码
break // 切记切记切记break不写case会挨个执行一遍
case 值2:
成立要执行的代码
break
case 值n:
成立要执行的代码
break
default:
以上都不成立执行的代码
}
需求:我们需要做一个后台的路由
// 如果用户输入的:
// login 登录页面
// register 注册页面
// index 主页
// personal 用户页面
// '' 主页
// 其他字符串 404
// var websize = prompt('请输入');
// switch(websize){
// case 'login':
// console.log( '登录界面' );
// break;
// case 'register':
// console.log( '注册界面' );
// break;
// case 'index':
// console.log( '主页' );
// break;
// case 'personal':
// console.log( '用户界面' );
// break;
// case :
// console.log( '主页' );
// break;
// case :
// console.log( '404' );
// break;
// }
注意:
switch、case、break、default都是关键字
切记break必须写,不写case会挨个执行一遍
默认switch常用于固定值判断
switch判断和if判断的区别
if常用于范围判断
switch常用于固定值判断
三元运算 ***
- 语法:操作1 ? 操作2 : 操作3
- 注意:操作1成立-操作2,操作1不成立-操作3
while循环
// 1. 声明循环变量
while (2. 循环变量判断条件) {
// 循环体内 要执行的代码 (要重复执行的代码) 这个代码没有开关会一直执行(死循环)
// 3. 得循环变量更新 因为你不更新 循环变量一直为真 就会累死 也就是死循环
}
// 需求1:求出1-100之间所有整数之和
var sum = 0;
var num = 1;
while( num<=100 ){
sum += num;
num++;
}
console.log( sum );
do…while循环
注意:do…while和while循环差不多,只是do…while会先无条件执行一次再判断
【①循环变量初始化】
do{
//循环体内执行的代码
【③循环变量更新】
}while(【②循环变量判断条件】);
for循环
for循环执行流程(非常重要):1-初始化->判断是否成立 2-更新->判断是否成立 3-不断重复步骤2
for(变量初始化; 判断条件; 变量更新){
// 循环体内执行的代码
}
需求:输出一百条好好学习
for(var num = 1;num<=100;num++){
console.log('第'+num+'遍:好好学习')
}
一、函数
作用:将一段公共代码封装起来,一次封装多次调用。
语法
声明式(推荐)
就是用function直接声明一个函数
function fn() {
// 一段代码
}
// function: 声明函数的关键字,表示接下来是一个函数了
// fn: 函数的名字,我们自己定义的(遵循变量名的命名规则和命名规范)
// (): 必须写,是用来放参数的位置(一会我们再聊)
// {}: 就是我们用来放一段代码的位置(也就是我们刚才说的 “盒子”)
赋值式
用var 声明一个变量接收这个函数
语法:
var fn = function () {
// 一段代码
}
// 不需要在 function 后面书写函数的名字了,因为在前面已经有了
函数调用阶段
- 就是让 盒子里面 的代码执行一下
- 让函数执行
- 两种定义函数的方式不同,但是调用函数的方式都以一样的
调用一个函数
函数调用就是直接写 函数名() 就可以了
// 声明式函数
function fn() {
console.log('我是 fn 函数')
}
// 调用函数
fn()
// 赋值式函数
var fn2 = function () {
console.log('我是 fn2 函数')
}
// 调用函数
fn()
函数(参数★)
- function和函数名之间必须空格,函数名的命名规则和命名规范同变量
- 定义函数参数:叫形参,多个之间逗号隔开
- 调用函数参数:叫实参,多个之间逗号隔开
- 函数的形参个数和实参个数,必须一样,否则undefined 可能会导致代码有瑕疵
- 函数的形参顺序和实参顺序,必须一致,否则逻辑BUG
// 定义
function 函数名(形参1,....,形参n) {
// 代码
}
// 调用
函数名(实参1,....,实参n);
函数(return★)
在实在工作中,调用函数有时候需要直接输出,有时候需要返回数据让后面代码进一步判断操作
- 默认return undefined
- return 返回的意思,作用1: 返回值、作用2: 终断函数
// 定义
function 函数名(形参1,....,形参n) {
// 代码
return 数据;
}
// 调用
函数名(实参1,....,实参n);
返回值
// 1.定义计算工资函数
function money(day, qian) {
// console.log('工作', day, '天,每天', qian, '块,共计:', day*qian);
return day*qian;
}
// 2.声明变量接受函数返回的结果
var data = money(30, 1000);
alert(data);
// 3.实战工作中可以进一步处理data
中断函数
- 当我开始执行函数以后,函数内部的代码就会从上到下的依次执行
- 必须要等到函数内的代码执行完毕
- 而
return关键字就是可以在函数中间的位置停掉,让后面的代码不在继续执行
function fn() {
console.log(1)
console.log(2)
console.log(3)
// 写了 return 以后,后面的 4 和 5 就不会继续执行了
// return 666;
return; //相当于return undefined
//因为return终止代码执行,相当于循环中的break
//脚下留心:函数终止必须用return,循环终止必须用brea
console.log(4)
console.log(5)
}
// 函数调用
fn()
arguments
注意:我们工作中总是会遇到不知道传多少形参的情况这时候我们会用arguments来实现这个功能
作用域
概念:指代码执行的环境
作用:就是变量和函数的可访问范围,即控制器变量和函数的可见性和生命周期。(工作说这个)
概括:规定了在什么地方可以使用js变量(学习推荐理解这个)
局部变量:函数体内声明的变量(生命周期-函数调动完毕销毁,也就是说只能在函数体内使用)
局部作用域:函数 开始“{”大括号 到 结束”}“大括号 区域
全局变量:函数体外声明的变量(生命周期-网页运行完毕销毁,后调用都行)
全局作用域:从定义开始后面的区域都可以用
隐式声明全局变量
明确:在js中,不加【var】声明的变量是
全局变量(隐式声明)特性(超级无敌重要):隐式声明,会到上一级作用域查找【var】声明的变量,如果找到了,就直接使用,如果没有找到,就继续向上一级查找,直到找到最顶级作用域也就是全局作用域(找到-直接使用,没找到,在顶级作用域自己声明自己使用)
函数体内不加var声明的变量叫:全局变量
向上找带var声明的同名变量:找到了-直接修改,找不到-就在全局作用域下声明一个将自己变成全局变量
作用域链
作用域链就是多个作用域组成的集合称之为作用域链
本文介绍了JavaScript的基础语法,包括变量声明、数据类型转换和逻辑运算。深入讲解了分支结构,如if、switch及三元运算,并探讨了它们之间的区别。此外,还详细阐述了函数的声明、调用、参数传递和返回值,以及作用域和变量生命周期的概念。

被折叠的 条评论
为什么被折叠?



