JS基础(一)

在B站学习的js基础,在这里做一下总结

目录

输入输出

 数据类型

两个数交换顺序

运算符号

流程控制分支结构

if  else

if  - else if - else

三元运算符

switch

循环

for循环

while循环do while循环

数组

冒泡排序

函数

简单函数

冒泡排序函数

arguments

总结


输入输出

在浏览器中显示内容

  • prompt()--弹出输入弹窗 ,prompt取得值是字符型
  • console.log()--控制台显示日志
  • alert()---弹出输出弹窗

字符串拼接:用‘+’拼接

var name = "旗木卡卡西";
var edi = "村";
var age = 18;
var email = "aaaa.qq.com";
console.log('我叫' + name, '住在' + edi, age, email);


转义字符:\
换行:\n

alert("酷热难耐,\n终于大喊一句\"热死了\"");

 数据类型

var声明变量

var a = 1 //整型
var c=010;//八进制前面为0
var b=0xa;//十六进制前为0x
var d='123' ;//字符串类型
var e=[1,2,3] ;//数组

os:在js中ture当0,false当1,undefined未定义

查看数据类型:typeof

var a=1;
console.log(typeof a);//int


转换数据类型

  • 转为字符类型:+,tostring,string()       
  • 转整型:parseInt取整,Number强制转化整型
  • 转布尔:Boolean
console.log(typeof a);
console.log(parseInt(a))
console.log(parseFloat(a));

两个数交换顺序

定义一个tem变量,再进行交换

var a = 1, b = 2
var tem
tem = a
a = b
b = tem
console.log(a, b);

运算符号

++p与p++的区别

  • ++p先加1,后返回值
  • p++先返回原值,在加1
var p = 1
console.log(++p + 1); //2


var c = 10
console.log(c++ + 10) //20
console.log(c) //11

"=","==","==="区别

  • = 赋值
  • == 判断,两边值是否相等,不要求数据类型
  • === 全等 ,  两边值和数据类型都要相等

&& 与,|| 或,! 非

console.log(3 > 5 && 3 > 2); //false
console.log(3 > 5 || 3 > 2); //true
//表达式进行非运算,要用到括号
console.log(!(3 < 5));

短路运算:有多个表达式,左边表达式可以确定结果,右边就不进行运算

  •  “&& ”1真结果为真,式1结果式2,0,空,否定为假,其他全为真
  • “|| ”式1真结果为式1,式1假结果假2

优先级:&& > ||

流程控制分支结构

if  else

进入网吧

让用户输入年龄,判断是否大于18岁,若大于18岁输出‘欢迎进入网吧’,否则输出‘未成年不能进入网吧’

a = prompt('输入年龄')
a = Number(a) //转换数据类型
if(a>=18){
      alert('欢迎进入网吧')
}else{
      alert('未成年不能进入网吧')
}

判断平年闰年

用户输入年份判断平年闰年

year = prompt('输入年份')
//能被4整除且不能被100整除,或者能被400整除
year=Number(year)
if(year % 4==0 && year %100 !=0 || year%400==0){
     alert('闰年')
}else{
      alert('平年')
}

 是否中奖

var name=prompt('输入姓名')
if(name=='刘德华'){
            alert('中了5块钱!!')
}else{
            alert('没中')
        }

if  - else if - else

成绩判断

var score=prompt('输入成绩')
if(score>=90){
            alert('A')
}else if(score>=80){ //到这步90以上全部筛走了
            alert('B')
}else if( score>=70){
            alert("C")
}else if( score>=60){
            alert("D")
}else{
            alert("E")
}

三元运算符

条件表达式 ? 表达式1 : 表达式2

os:若 条件表达式为真,返回表达式1,否则返回表达式2

var num = 10;
var result = num > 5 ? '是的' : '不是';
console.log(result);

数字补0

若输入数字为8,则自动补充为08,否则保持原样

var a=prompt('输入数字')
var result=a>10 ? a : '0'+a;
alert(result);

switch

水果查询

输入水果名字,输出价格

var a=prompt('输入想要的水果');
switch (a) {
            case '苹果':
                alert('35.2/斤')
                break;
        
            case '梨':
                alert('12.5/斤')
                break;
            default:
                alert('无该水果价格')
                break;
        }

 

 简易ATM

var sum=0;
var a=prompt('此页面显示\n1.存钱\n2.取钱\n3.显示余额\n4.退出')
switch(a){
            case '1':
                var mun=prompt('存多少:')
                sum = sum + Number(mun);
                alert('现有余额:'+sum);
                a=prompt('此页面显示\n1.存钱\n2.取钱\n3.显示余额\n4.退出')
                //break;
            case '2':
                var mun=prompt('取多少:')
                sum = sum - Number(mun);
                alert('现有余额:'+sum);
                a=prompt('此页面显示\n1.存钱\n2.取钱\n3.显示余额\n4.退出')
                //break;
            case '3':
                alert('现有余额:'+sum);
                a=prompt('此页面显示\n1.存钱\n2.取钱\n3.显示余额\n4.退出')
                //break;
            case '4':
                alert('正在退出');
                break;
        }

循环

for循环

用于循环次数可知的情况,判断条件不复杂

累加求和

var sum = 0;
for (var i = 1; i <= 100; i++) {
            sum += i
}
console.log(sum);

1-100以内奇数,偶数分别求和

var sum1 = 0, sum2 = 0;
for (var i = 0; i <= 100; i++) {
            if (i % 2 == 0) {
                sum1 += i
            } else {
                sum2 += i
            }
}
console.log(sum1);
console.log(sum2);

统计班级总成绩与平均值

弹出输入框,输入班级人数。再弹出与班级人数相同的成绩输入框,进而求出班级总成绩与平均成绩

var a=prompt('班级人数')
var sum4=0
for(var i=1;i<=a;i++){
             var score = prompt('第'+i+'个成绩');
             sum4=sum4+parseFloat(score);
} 
alert('总成绩为:'+sum4)
alert('平均成绩为:'+sum4/a);

打印一行星星(用字符追加)

var str = ''
for (var i = 1; i <= 5; i++) {
            str = str + '*'
}
console.log(str);

打印99乘法表

var str = ''
for (var i = 1; i <= 9; i++) {
     for (var j = 1; j <= i; j++) {
            str = str + (i + '*' + j + '=' + i * j) + ' '

        }
     str = str + '\n'
}
console.log(str)

while循环do while循环

用于循环条件较复杂

在用户输入“我爱你”才退出循环

var i = 1;
var str = prompt('你爱我吗?')
while (str !== '我爱你') {
            var str = prompt('你爱我吗?')

}
alert('知道了')

do while先循环在判断

do{
     var str=prompt('你爱我吗');
 
}while(str!='我爱你')
alert('我知道')

数组

创建数组:new关键字,字面量创建

var arr = [1, 2, 3, 'pink', true]

遍历数组:将数组元素从头到尾访问一遍

for (var i = 0; i < arr.length; i++) {
            console.log(arr[i]);
}

求数组最大值

先定义一个最大值,然后遍历数组,若其中有比max更大的值,就将该值赋值给max

var arr = [2, 6, 1, 77, 53, 23, 99];
var max = arr[0]
for (var i = 1; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
}
console.log(max);

筛选大于等于10的数到新数组

var arr=[2,0,6,1,77,0,52,0,25,7];
var new_arr=[]
// 用arr.length来代替索引,开始arr.length=0,有数之后会增加
for(var i=0;i<arr.length;i++){           
            if(arr[i]>=10){
                new_arr[new_arr.length]=arr[i];
            }
        }
console.log(new_arr);

删除数组中0的值,形成不含0的新数组

var arr=[2,0,6,1,77,0,52,0,25,7];
var new_arr=[];
for(var i=0;i<arr.length;i++){
            if(arr[i]!=0){
                new_arr[new_arr.length]=arr[i];
            }
}
console.log(new_arr);

反转数组

var arr=['red','green','blue','pink','purple']
var new_arr=[]
for(var i=arr.length-1;i>=0;i--){
            new_arr[new_arr.length]=arr[i]
}
console.log(new_arr);

冒泡排序

  1. 将数组中第一个数与第二个数对比,若第一个数大于第二个数,则将第一个数与第二个数交换顺序
  2. 按第一步那样相邻的数比较,若前面一个数大于后面那个数则将这两个数位置交换
  3. 可以发现若一个数组需要比较arr.length-1趟,每一趟需要比较arr.length-i-1次,故需要两个for循环。外层循环代表需要比较的趟数,内层代表每趟比较需要比较的次数
var arr=[2,0,6,1,77,0,52,0,25,7]
var max=arr[0]
var new_arr=[];
for(var i=0;i<=arr.length-1;i++){ //管趟数
                //管一趟中比较的次数
      for(var j=0;j<=arr.length-i-1;j++){ 
                if(arr[j]>=arr[j+1]){
                    var temp;
                    temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
      }
            
}
console.log(arr);

函数

为了提高代码的可用性,将一部分的代码进行封装,在编写的时候就可调用函数

调用函数时要注意:

  1. 若实参个数多于形参,会取到形参的个数
  2. 若少于,没有的参数会是undifind结果为NaN

简单函数

求任意两个数的和


function twoSum(a,b){
            return a+b;
}

任意两数之间的和

function allSum(a,b){
            var sum=0
            for(var i=a;i<=b;i++){
                sum+=i;
            }
            return sum;
}

求任意两个数的最大值(用三元运算符)

function getMax(a,b){
            //三元运算符
            return a>b ? a : b;
}

冒泡排序函数

function maoPao(arr){
            // var tmp;
            for(var i=0;i<arr.length-1;i++){
                for(var j=0;j<arr.length-i-1;j++){
                    if(arr[j]>arr[j+1]){
                        var tmp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=tmp;
                    }
                }
            }
            // 返回值只能一个值,要返回多个值用数组
            return arr;
}

arguments

arguments伪数组,具有length属性,按索引存储,但没有真正数组的一些方法。只有函数才有,在不知道实参是多少时用

求任意个数的最大值:

function getMAx1(){
            var max=arguments[0];
            for(var i=1;i<arguments.length;i++){
                if(arguments[i]>max){
                    max=arguments[i];
                }
            }
            return max;
}

翻转任意函数:

function reverse(arr){
            var newArr=[];
            for(var i=arr.length-1;i>=0;i--){
                newArr[newArr.length]=arr[i];
            }
            return newArr;
}

总结

以上就是最近两天学习的JS基础知识,希望对各位看官有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值