JS基本语法、分支结构、函数(初认识)

本文介绍了JavaScript的基础语法,包括变量声明、数据类型转换和逻辑运算。深入讲解了分支结构,如if、switch及三元运算,并探讨了它们之间的区别。此外,还详细阐述了函数的声明、调用、参数传递和返回值,以及作用域和变量生命周期的概念。

一、基本语法

声明变量

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 (要判断的变量) 
{
    case1:   // 判断变量是否等于值
        成立要执行的代码
        break   // 切记切记切记break不写case会挨个执行一遍
    case2:
        成立要执行的代码
        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声明的同名变量:找到了-直接修改,找不到-就在全局作用域下声明一个将自己变成全局变量

作用域链

作用域链就是多个作用域组成的集合称之为作用域链

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值