JavaScript基础学习--day2

八、运算符
(一)赋值运算符

=、+=、-=、*=、/=、%=

(二)一元运算符(例:正负号)

javaScript中的运算符根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符

需要两个数相加(两个表达式)的叫做二元运算符

一元运算符:

1.自增:++;2.自减:--

前置自增:++num;后置自增:num++;

前置:先运算后重新赋值

后置:先赋值后运算

两者通常单独使用,单独使用时效果相同

和其他数运算时有差:

面试题:

let i =1

console.log(i++ + ++i +i)

控制台输出结果为:7

1+3+3=7(i++:先赋值后计算,先为1 ,后i变为2,在计算++i时,2+1变为3)

注:在计数时常用 i++

(三)比较运算符

==:具有隐式转换,因此判断数据是否相等用===

除开数字的比较,还可进行字符串的比较,参照ASCII码

从左往右依次比较(一个一个字符的比较

注:NaN不等于任何值,包括它本身(涉及到NaN的比较都是false)

尽量不比较小数会有精度问题(可通过乘法变为整数进行比较

(四)逻辑运算符(与或非)

练习:输入一个数,若为4的倍数并且不是100的倍数则弹出弹框

(四)运算符优先级(*)

九、表达式和语句

表达式:可以被求值的代码(可赋值,写在赋值运算符的右侧)

语句:可以被执行的代码(不一定有值)

(一)语句分类:

顺序结构:一般电脑执行代码是从上向下顺序执行

分支结构:使电脑能够选择性地执行代码

循环结构:在满足条件的情况下,是电脑重复执行同一语句

1.分支语句

分类:if分支语句、三元运算符、switch语句

(1)if语句-->单分支、双分支、多分支

1.1单分支:

if(条件){

}

注:除开0所有的数字作为条件都为true(NaN也不行),除开‘ ’空字符所有字符作为条件都为true。

练习:

1.2 双分支:

if(条件) {

}

else {

}

练习:

1.3 多分支:

if (条件1) {

}

else if(条件2){

}

else if(条件3){

}

......

else {

}

练习:

(2)三元运算符:(一般用来取值)

条件 ? 满足条件执行的代码 : 不满足条件执行的代码

练习:

练习:

(3)switch语句:

switch(数据){

case 1:

代码1

break//退出switch

case 值2:

代码2

break

......

default:

}

注:数据必须全等===

练习:

if与switch的区别:

(1)switch分支语句用于条件确定的情况下

if分支语句主要用于条件中带有关系运算符

(2)switch语句在分支多的时候效率更高

(3)switch注意条件全等,并且每个case

语句后一定要加break(否则会有穿透效果)

穿透效果:继续执行之后的语句。

2.循环语句:循环:(重复执行某段代码)

断点调试:(方便查错--好用的:-))

(1)while循环:

while (循环条件){

要重复执行的代码(循环体)

}

注:当条件不满足时跳出循环

循环三要素:

a. 变量初始值 b.终止条件 c.变量变化量(用++ 或--)

练习:输出1-100,并计算1-100的和,以及1-100之间的所有偶数和

退出循环:

break:直接退出循环

continue:结束本次循环(要小心,防止死循环)

注:while循环在使用continue时需要在continue之前补充一个变量的变化量(由于while循环的三要素)

区别:

continue 退出本次循环,一般用于排除或者跳过某个选项的时候,可以使用continue

break 退出整个循环,一般用于结果已经得到,后续的循环不需要的时候

练习:一直弹出弹窗询问。。。,只有回答爱的时候才不弹

练习:简易ATM机

用switch实现,不同选项对应case中的不同处理方式。

注:prompt里面的字符号要用``(反引号)才能做到换行写,单引号和双引号都会报以下错误

(2)for循环

for (变量起始值;终止条件;变量变化量){

}

练习:用for实现1-100岁的输出,1-100所有偶数的和以及输出5个小星星

注:for循环的最大价值:循环数组

for的死循环:

for(; ;){

}

for 与 while 循环的区别:

循环次数确认的时候最好使用for循环。

for循环嵌套:

for ( ) {

for( ) {

}

}

练习:

每天记忆5个单词,记忆3天:

第一天 5个 ,第二天 5 个。。

天数为外层,单词数为内层

练习:打印5行5列的小星星⭐

升级:

打印倒三角形星星

九九乘法表:

改良:

用css代码为span渲染样式就好 

十、数组:一种数据类型
(一)数组的基本使用--声明并取值
1.声明语法:

a.字面量声明数组:

b.使用new Array 构造函数声明 (了解)

注:数组里可以存放任意数据类型

声明还能这样:let arr = []

arr[0] = 1

arr[1] = 2

arr[2] = 3

2.取值语法

数组名[下标/索引]

下标从零开始

3.遍历数组(for实现)

let arr=[1,2,3,4,5]

for (let i=0;i<arr.length;i++) {

console.log(arr[i]);

}

练习:

1.求数组[2,6,1,7,4]里面所有元素的和以及平均值

注:undefined+任何数都是NaN

2.数组求最大值和最小值

改进:(三元运算符实现)

 

(二)改:

let arr['shdk','asdg','dsj']

let arr[0]='sdjl'

(三)新增

1.push()方法将一个或多个元素添加到数组的末尾返回数组的新长度

2.unshift()方法将元素添加到数组的开头,并返回数组的新长度

练习:数组筛选

将数组中大于等于10 的筛选进新的数组

(四)删除

arr.pop():删除数组中的最后一个元素,并返回该值

arr.shift()删除数组中的第一个元素,并返回该值

arr.splice(起始位置-索引,删除几个):删除指定元素

起始位置:默认从0计,删除几个:默认从0到末尾。

练习:

根据数据生成柱形图:

先用css代码写下图形样式,除开里面四个盒子的高度,该高度用标签内部css代替

1.样式:

2.js

(五)排序

冒泡排序

错误❌:

外层只用循环arr.length-1,

注:以上结果可用:arr.sort()排序得到

1.arr.sort()方法默认升序排列

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值