我的Spring Boot 之旅——Day7-8(学习js)

day7 学习js(一)

html未完成部分

1. 显示与隐藏

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div{
            width: 100px;
            height: 100px;
            background-color: rgb(92, 124, 184);
        }
        .one{
            /* 隐藏,不占据屏幕空间 */
            /* display: none; */
            /* 显示 */
            /* display: block; */
            /* 隐藏,占据屏幕空间 */
            /* visibility: hidden; */
            /*  显示*/
            /* visibility: visible; */
            /* 透明度,取值为0-1,也可以用来隐藏,也占用空间 */
            opacity:0.5;
             /* 显示 */
            /* opacity: 1; */
            background-color: rosybrown;
            /* float: left; */
        }
    </style>
    <script>
        window.onload = function(){
            //获取元素
            var btn = document.getElementById('btn');
            var div = document.getElementsByClassName('one')[0];//返回的是一个类数组对象,但这里只拿出了一个dom节点
            // 绑定事件
            //btn.onclick = function(){
            //     div.style.display = "none";
            // }
            //如果需要切换回来,可以用两种方式:
            //方法一
            btn.onclick = function(){
                if(div.style.display == "none"){div.style.display = "block";}
                else{div.style.display = "none";}
            }
            //方法二
            // var btn1 = document.getElementById('btn1');
            // btn1.onclick = function(){
            //     div.style.display = "block";
            // }

            //下面是用jQuery进行隐藏与显示的方法
            // $('.one').show();
            // $('.one').hide();
            // $('.one').css('display','block');
            // $('.one').css('display','none');
            // $('.one').css('display')==='one'条件判断
        }
    </script>
</head>
<body>
    <button id="btn">切换</button>
    <!-- <button id="btn1">显示</button> -->
    <div class="one">one</div>

    <!-- 通过浮动形式,文字是不会消失的,也不会被隐藏到one底下。 -->
    <div class="two">two</div>
</body>
</html>

2. 内容溢出处理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    .one{
        width: 200px;
        /* 如果不设置高度,父元素的高度由内部子元素决定到底多高,并且不会溢出 */
        height: 200px;
        border: 2px solid red;
        /* 超出内容隐藏 */
        /* overflow: hidden; */
        /* 产生滚动条   auto:如果内容超出就产生滚动条,如果内容不超出就不产生滚动条*/
        overflow: auto;
    }
    </style>
</head>
<body>
    <div class="one">
        start
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        end
    </div>
</body>
</html>

3. 过渡

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>过渡</title>
    <style>
        div{
            height: 100px;
            width: 100px;
            background-color: red;
            /* transition:all 2s; */
            transition: all 2s linear 3s;
        }
        /* 光标悬停在元素上的时候展现的样式 :hover悬停 */
        div:hover{
            width: 300px;
            background-color: cornflowerblue;
            /* linear是匀速。3s是延迟时间 */
            /* transition: all 2s linear 3s; */
        }
    </style>
</head>

<body>
    <div></div>
</body>
</html>

js的学习

1.JS.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>在浏览器底下的应用</title>
    <script>
        console.log(2);
        console.log(a,'--++--');

    </script>

    <!-- 引入外部js文件,在src写了地址之后,在此标签内再写任何代码,在这里写的js代码不再起作用,它只认src里面的代码 。所以这种带有src的就不要再写代码了-->
    <!-- 简单来说就是不要在这里写js,不识别 -->
    <script src="./js/1-aaa.js"></script>

    <script>
        console.log(a,'------');
    </script>
</head>
<body>
    <div>
        <div class="one">
            hello
            <script></script>
        </div>
        <script>
            document.getElementsByClassName('one');
        </script>
    </div>
</body>
</html>

2.js基本数据类型

var a = 1;
a = 'hello';//可以更改成字符串类型

var b = 'hello';
var c = true;
var d = null;
var e = undefined;
var f;//在没有赋值的时候就是undefined

var obj = {
    name:'zhangsan',
}
//访问对象中的属性
//Obj.name    //返回的是name属性对应的属性值,‘zhangsan’
console.log(obj.name);  //'zhangsan'
console.log(obj.age);  //undefined,因为当前对象里面没有age,但是不会报错,最终会给一个undefined的值

//console.log(g);//之前没有声明g,会报错,g is not defined.

console.log('--------');
console.log(null === undefined);
console.log(null == undefined);

console.log(1);
console.log('1');
console.log(typeof 1);
console.log(typeof '1');
console.log(1 == '1');
console.log(1 === '1');

 console.log(typeof true);//boolean
 console.log(typeof null);//object;将来存放的是对象
 console.log(typeof undefined);//undefined;

console.log(typeof obj);//object
console.log(typeof []);//object
console.log(typeof function(){});//function

/**
 * 类型         typeof取值
 * number        number
 * string        string
 * boolean       boolean
 * undefined     undefined
 * null          object
 * object        object
 *               function
 */


//
 if(!obj.age === undefined){

 }


 //基本数据类型存放在栈区,引用数据类型实际上存放在堆区
 var o = {};
 var o1 = null;

3.js数据类型

var a = 1;
var b = {name:'zhangsan'};
//值传递 将基本数据类型的值复制一份再赋值
var c = a;

a = 11;
console.log(a,c); //11,1

//址传递,引用传递 将地址传递
var e = b;//e b1001
b.age = 12;
console.log(b,e);

4.if条件语句

var age = 34;

//方法一
// var result = '成年人';
// if(age<18){
//     result = '未成年人';
// }
// console.log(result);

//方法二
var result = age < 18 ? '未成年人':'成年人';
console.log(result);


var result2 = '成年人';
if (age<18){
    result2 = '未成年人';
}
console.log(result2);

5.for条件语句(99乘法表)

//99乘法表
//初始条件,结束条件,迭代条件
for(var i = 1;i<10;i++){
    // console.log(i);
    var str = '';
    for(var j = 1;j<=i;j++){
        str += i+'*'+j+'='+(i*j<10?i*j+" ":i*j)+'     ';//(i*j<10?i*j+" ":i*j),写这个的原因是如果结果小于10,后面的会错版
    }
    console.log(str);
}

6.switch

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./js/5-switch.js"></script>
    <script>
        //var num = +prompt('请输入要转换的数值:');//prompt是会话框,采集用户输入的内容
        // console.log(num);
        // console.log(+num); //加了个加号表示这个是正数,这里就把用户输入的5变成了number类型,因为原来用户输入5的是字符串类型
        // console.log(num)
        // console.log(5);
        

        //var a = change(num);
        // console.log(a);
        //alert(a);
        //alert(change(num));


        //搞个死循环
        // while(true){
        //     var num = +prompt('请输入要转换的数值:');
        //     alert(change(num));
        // }

        //只让用户输入三次
        var i = 0;
        while(i<3){
            var num = +prompt('请输入要转换的数值:');
            alert(change(num));
            i++;
        }
    </script>
</head>
<body>
    
</body>
</html>


function change(num){
    // var num = 10;
    // 1-壹 2-贰 3-叁 4-肆 5-伍 6-陆 7-柒 8-捌 9-玖 10-拾
    var result;
    switch(num){
        case 1 :
            result = '壹';
            break;
        case 2 :
            result = '贰';
            break;
        case 3 :
            result = '叁';
            break;
        case 4 :
            result = '肆';
            break;
        case 5 :
            result = '伍';
            break;
        case 6 :
            result = '陆';
            break;
        case 7 :
            result = '柒';
            break;
        case 8 :
            result = '捌';
            break;
        case 9 :
            result = '玖';
            break;
        case 10 :
            result = '拾';
            break;
        default:
            result = '输入错误';
            break;

    }
    return result;
}

var a = change(5);
console.log(a);

day8 学习js(二)

今天主要学习js的两个内容:
1.JS对象,对象序列化,对象属性遍历,对象属性删除

var obj = {name:'zhangsan',
            age:'12',
            test:123};
var test = 'age';
// obj.age
// obj[test]
// obj['age']  //[]访问属性,内可存放变量
console.log(obj[test]); //12
console.log(obj['test']);//123


// 删除test属性,用关键字delete
delete obj.test;
console.log(obj);

var obj2 = {
            username:'lisi',
            password:'123456',
            gender:'male',
            age:'',
            hobby:'',
            info:'我是一个xxx的人',
            sno:1001,
            };
//遍历对象,获取属性值,如果属性值为空,删除属性
console.log(obj2);
for(var key in obj2){
    //key--属性名
    // console.log(key,obj2[key]);
    if(!obj2[key]){
        delete obj2[key];
    }
}
console.log(obj2);


JSON字符串形式和JS字符串形式之间的转换

var obj = {
    name:'zhangsan',
    age:12
};
console.log(obj);
console.log(obj.toString());
console.log(JSON.stringify(obj));//将js对象转换成JSON字符串,JSON打印出来的格式{"name":"zhangsan","age":12}

var jsonstr = '{"name":"zhangsan","age":12}';
console.log(JSON.parse(jsonstr));//JSON.parse()可以将JSON字符串转换成js能识别的对象;

2.JS函数
在函数内使用var修饰的是局部变量,只能在函数内访问。在函数外不可以访问函数内的局部变量。
在函数内可以访问全局变量。
在函数内没有使用var修饰的是全局变量。在函数外声明的变量是全局变量。

变量声明会提升,函数声明也会提升,函数声明会提升到最前方,然后是变量声明的提升。

函数内的arguments对象,是一个类数组对象,内部存放的是实参。arguments只能在函数内访问。
使用Array.from(arguments)将类数组对象转成数组对象。

累加计算

function add(){
    //arguments,类数组对象,只能在函数内部访问,代表所有的实参存放的位置
    console.log(arguments);
    var arr = Array.from(arguments);
    //console.log(arr);
    var total = 0;  //累加的话这里是0,累乘的话是1
    for(var i = 0;i<arr.length;i++){
        total += arr[i]; //累加的话这里是+=,累乘的话是*=
    }
    return total;
}
console.log(add(6,8));

//计算多个数的累加
console.log(add(3,5,6,8,9,11,8));

关于全局变量和局部变量

var d = 34;
function test(a,b) { 
    //var a,b;
    a = 3;
    b = 4;
    console.log(a,b);
    var c = 12;
    console.log(c);
    d = 78;
    var  d = 56; //在上一行有d=78的情况下,var修饰的变量会提前,“var d;”会放到函数的开头,这里就变成“d=56”,所以这里函数内部的d=78和d=56实际上是修改函数内部的d,函数内打印出来的是最终赋值的d=56。//在上面没有d=78的情况下,这里加了var,所以他变成了函数里的局部变量,所以下面打印出来的d是34而不是56.
    console.log(d,'----')
 }
 test(1,2);
 //console.log(c);  //c不能在函数外进行使用,因为他是函数内的局部变量,它是在函数里面声明的,所以它只能在函数内部访问
 console.log(d,'+++++'); 

函数可作为参数传递,也可作为返回值。

var test = function(){
    console.log(123);
}
//test();
useFun(test);

//函数作为参数传递
function useFun(fun) {
    var c = 3;
    fun(c);
}

//回调函数
useFun(function (a) {
    //a 3
    console.log(a);
})

/*
Array.forEach(function (item,index) {
    console.log(item.index);   
})

success:function (res) {
    res;
}
*/

//函数作为返回值
function start() {
    return function () {
      return {
          name:'lisi',
          age:12,
          sayName:function () {
              console.log(this.name);
          }
      }
    };
}
start()().sayName();
/*
    var a = start();//a就是function.
    a();
    var a = function(){
        console.log(1);
    }
*/



/*
var obj = {
    name:'zhangsan',
    age:12,
    sayName:function () {
        // console.log(1,'****');
        console.log(this.name);  //打印obj的name,也可以用console.log(obj.name);
    },
};

obj.sayName();
*/

问题模块

要学会就不只是要跟着老师敲代码那么简单,所以在自习时间,自己又重新敲了一遍,果然出现了很多错误:
1.在给变量赋值的时候出现了错误
在这里插入图片描述

2.累加的时候出现了undefined的错误,为什么呢?因为少了“return sum;”,函数里面没有给返回值。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值