JavaScirpt 一些基本知识

 

var name = prompt('请输入你的姓名:'); //弹出输入框
var age = prompt('请输入你的年龄');
var sex = prompt('请输入你的性别');

  

检测字符串的长度用 变量名+length
字符串拼接 用+

 

转换为字符串类型

字符串转换为数字类型parseInt和parseFloat
parseInt('String')可以把字符型转换为数字型,得到是整数
parseFoat('变量') 注意大小写
其他类型转成布尔类型 Boolean()函数 代表空,否定的值会被转换为false

 

//计算年龄案列
       
        var chu = prompt('请输入你的出生年份');
        var jinnian = 2020 - chu;  //减法有隐式转换
        alert('你今年已经' + jinnian + '岁了');
        

 

 

//加法器
          定义弹出框,输入数值,保存在变量中
          将数值进行相加
         赋值给新的变量要注意数据类型转换
          弹出警示框,输出结果即可

        var num1 = prompt('请你输入第一个值');
        var num2 = prompt('请你输入第二个值');
        var sum = parseFloat(num1) + parseFloat(num2);
        alert('结果' + sum);     

 

 

递增运算符练习
        //后置自增 先表达式返回原值,后变量再自加1
        //前置自增 先自加 后运算 (前加后算)

        var a = 10;
        var f = a++ + ++a; //1,a++等于10  a =11  2,a = 12   ++a等于12
        console.log(f); //22

 

 

//if语法结构
   
        var age = prompt('请输入你的年龄');
        if (age >= 18) {
            //执行语句
            alert('恭喜你可以进入网吧');
        } else {
            prompt('你不可以进入网吧!请返回');
        }

 

 

        //if语句案例演示
        //闰年的案例
        var yeas = prompt('请输入想要检测的年份');
        if ( yeas %4 ==0 && year %100 != 0 ||year%400== ) {
            alert('这是闰年');
        } else {
            alert('这是平年');
        }

 

//判断是否中奖
        var name = prompt('请输入姓名');
        if (name = '刘德华') {
            alert('恭喜你中了5块钱');
        } else {
            alert('很遗憾你没有中奖');
        }

 

//多分支语句
        
        if ( 条件表达式 ) {
            //语句1
        } else if () {
            //语句2
        } else if () {
            //语句3
        } else {
            //最后的语句
        }

 

三元表达式
条件表达式 ? 表达式1 :表达式2;

switch语句 表达式的值和case后面的选项值相匹配,则执行case里面的语句,最后没有匹配上则执行default里面的语句
变量里的值和数据类型一致, 大多用于确定值的情况, 结构清晰

 switch (表达式) {
            case value:
                执行语句1;
                break;
            case value2:
                执行语句2:
                break;
            default:
               执行最后的语句
        }

 

switch语句案例演示
        
        var fru = prompt('请输入你想要查询水果的名称');
        switch (fru) {
            case '苹果':
                alert('苹果的价格5/斤');
                break;
            case '雪梨':
                alert('雪梨的价格10/斤');
                break;
            default:
                alert('不好意思,今日没有这种水果');
        }

 

         //for循环
        //重复某些相同代码

        for (初始化变量; 条件表达式(终止条件); 操作表达式) {
            //循环体
        }
    
 
        var num = prompt('请输入班级的总人数');
        var sum = 0;
        var avg = 0;
        for (var i = 1; i <= num; i++) {
            var score = prompt('请输入第' + i + '个同学的成绩')
            //因为从prompt取过来的数据是 字符串型的需要转换为数字型
            sum = sum + parseFloat(score);

        }
        avg = sum / num;
        alert('班级成绩是' + sum);
        alert('班级平均分是' + avg);

 

        //九九乘法表

        var str = '';
        for (var i = 1; i <= 9; i++) {//外层循环控制行数
            for (var j = 1; j <= i; j++) {//内层循环控制每一行的个数
                //1*2=2
                str += j + '*' + i + '=' + i * j + '\t';
            }
            str += '\n';
        }
        console.log(str);

 

断点调试 观察程序运行的过程
while和do while 执行顺序不一样 ,while 先判断后执行 ,do while 先执行一次再判断执行
while和do while 执行次数不一样 ,while可能一次都不执行,do while 至少执行一次循环体
continue 关键字 退出本次(当前)循环,继续执行剩余次数循环
break 关键字 跳出整个循环(循环结束)
求1-100之间,除了能被5整除之外的整数和

 

var sum = 0;
        for (var i = 1; i < 15; i++) {
            if (i % 5 == 0) {
                continue;
            }
            sum += i;
        }
        console.log(sum);

 

标识符命名规范

变量和函数命名必须要有意义
变量一般用名词
函数一般用动词

操作符
左右两侧保留一个字符
单行注释注意签名有个空格

数组里得数据用逗号隔开

索引号从0开始
数组访问 数组名[索引]
遍历数组(类似早上点名)
数组长度 数组名.length 动态监测数组元素得个数
后面可以修改数组索引的方式追加数组元素,不要直接给数组名赋值,否则会覆盖原值

 

遍历数组案例
i是计数器,当索引号使用 || 如果相加的是数组元素arr[i]

var Hero = ['关羽', '张飞', '马超', '黄忠', '赵云'];
for (var i = 0; i < Hero.length; i++) {
console.log( Hero[i] );
}

 

将数组内大于等于10的元素选出来,放入新数组
声明新的数组存放数据newarr
遍历旧数组,找出大于等于10的元素
依次追加给新数组 newarr

 

 var arr = [2, 22, 33, 44, 55, 66];
        var newArr = [];
        var j = 0;
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] >= 10) {
                //新数组索引号应该从0开始,依次递增
                newArr[j] = arr[i];
                j++;
            }
        }
        console.log(newArr);

  

//冒泡排序

var arr = [5, 4, 3, 2, 1];
for (var i = 0; i <= arr.length - 1; i++) { //外层循环趟数 arr.length-1
for (var j = 0; j <= arr.length - i - 1; j++) { //里面的循环 每一趟的交换次数 arr.length -1 -i
//内部交换2个变量的值,前一个和后一个数组元素相比较
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);

 

 //函数
        
        function add(形参1, 形参2) {//形参:形式上的参数,接受实参,默认值为undefined
             没有return,返回undefined
        }
        函数名(实参1, 实参2);//实参:实际的参数
        function getsum(num1, num2) {
            return getsum;
        }
        getsum(1,2);//函数名() = return;

 

实际开发,经常用一个变量接受函数的返回结果
return 特点 :1终止函数,2后面的代码不会被执行,3只能返回最后一个值,4用数组返回多个值

arguments函数里面内置这个对象,里面存储了传递的所有实参,伪数组,1具有数组的length属性,2按照索引号的方式进行存储,3没有真正数组的一些方法

 

函数两种声明方式


 1,利用关键字自定义函数


 2,函数表达式(匿名函数) 跟声明变量差不多 变量名();调用 ,也可以传递参数

 

var 变量名 = function() {};

 var a = b = c = 9;

  

相当于 var a = 9; b = 9; c = 9; b和c直接赋值 没有var赋值,当全局变量看

 

创建对象
使用对象
(1)调用对象的属性 一般采用 对象名.属性名 /对象名['属性名']
(2) 调用对象的方法 对象名.方法名()

 

字面量
        
        var obj = {
            uname: '李白',
            age: '66',
            sex: '男',
            say: function () {  // 方法名冒号后面跟的是一个匿名函数(函数表达式)
                console.log("你好吗");
            }
        }

  

        // 创建对象案例演示
        // 第一种
        var dog = {
            name: '可可',
            type: '阿拉斯加犬',
            age: 5,
            color: 'red',
            barkasf: function () {
                console.log('可可会汪汪汪');
                console.log('可可还拍过电影呢');
            }

        }
        console.log(dog.name);
        console.log(dog.age);
        console.log(dog.type);
        console.log(dog.color);
        console.log(dog.barkasf());
        // 第二种
        var obj = new Object();
        obj.uname = '鸣人';
        obj.age = 19;
        obj.sex = '男';
        obj.skill = function () {
            console.log('我会影分身之术');
        }
        console.log(obj.uname);
        console.log(obj.age);
        console.log(obj.sex);
        console.log(obj.skill());

 

         //  第三种 构造函数创建对象  把对象里面的一些相同属性和方法封装到函数里面

        //构造函数名字首字符要大写  抽象了对象的公共部分 泛指某一大类,类似JAVA的类
        //构造函数不需要return,就可以返回结果
        //构造函数语法格式

        function 构造函数名() {
            this.属性 = 值;
            this.方法 = function () {

            }
        }
        new 构造函数名(); //调用函数就创建了一个对象

 

        //构造函数案例演示
      
        function Hero(uname, ttype, blood,attack) {
            this.name = uname;
            this.type = ttype;
            this.blood = blood;
            this.attack = attack;

        }

 

        
        // 调用函数就是创建了对象
        var lianpo = new Hero('廉颇', '力量型', 500, '近战');
     
        console.log(lianpo.name);
        console.log(lianpo.type);
        console.log(lianpo.blood);
        console.log(lianpo.attack);
        var houyi = new Hero('后羿', '射手型', 100, '远程');
        console.log(houyi.name);
        console.log(houyi.type);
        console.log(houyi.blood);
        console.log(houyi.attack);

        function computer(color, weight, type) {
            this.color = color;
            this.weight = weight;
            this.type = type;
            this.watch = function () {
                console.log('看电影');
            }
        }

        var thinkPad = new computer('黑色', '1.7kg', '联想');
        console.log(thinkPad.type);
        console.log(thinkPad.color);
        console.log(thinkPad.weight);
        console.log(thinkPad.watch);

 

fot...in 用于对数组或者对象的属性进行循环操作 遍历对象
k 变量 输出 得到的是 属性名
对象[变量] 得到是属性值

 for (var k in dog) {
            console.log(dog[k]);
        }

  

        //猜数字游戏
      
        function getMath(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
        var random = getMath(1, 30);
        while ( true ) {
            var num = prompt('输入数字');
            if (num > random) {
                alert('猜大了');
            } else if (num < random) {
                alert('猜小了');
            } else {
                alert('恭喜,宾果');
                break;
            }

        }

  

   var date = new Date();
        console.log(date);

  


创建数组的两种方式

 1, 利用数组字面量
 2, 利用new Array() 创建了一个空的数组


检测是否为数组
 1, instanceof 运算符
 2, Array.isArray(参数)

 

reverse(); 翻转数组
sort(function( a, b){ 数组排序(冒泡排序)
return a - b;升序
return b - a;降序
});

  

返回数组元素索引号方法 indexOf(数组元素); 找不到元素则返回 -1 lastIndexOf 后面找
toString() 将数组转换为字符串
join(分隔符)

 

posted @ 2020-02-24 09:12  代码changetheWorld  阅读(283)  评论(0编辑  收藏  举报