2021-08-10

Day01–JS笔记

1.认识js:
JavaScript是一种编程语言 它是对网页行为进行编程;
JavaScript就是我们常说的js;
Java和JavaScript的关系:雷锋和雷锋塔的关系;
代码的执行需要js解释器,并不一定是浏览器。
1.JS能增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)
2.js能实现页面与用户之间的实时、动态交互(如:用户注册、登陆验证等)

2.js存在的价值:
一个页面分成三个层:
结构层:HTML
表现层:css 皮囊
行为层:JS 灵魂
1.在用户体验方面、js功不可没;
2.减轻服务器压力:相关的数据验证可以直接在客户端完成,比如手机号验证、密码复杂度验证、邮箱验证等。

3.JS分成三部分:
1.ES:ECMAScript , 简称为ES,称它为语法部分,欧洲计算机制造商协会,制定了一套JS规则,JavaScript 是对这套规则的具体体现;
2.DOM:js高级编程,DocumentObjectModel文档对象模型, 用来操作页面的;
3.BOM:BrowserObjectModel 浏览器对象模型, 用来操作浏览器的;

学前准备

1.如何在HTML页面中引入js:
1.行内----保密(极不推荐)
2.内联----使用script标签里引入js代码
3.外联----使用script标签的src属性引入js文件
内联和外联引入代码如下:

<!-- 内联 -->
    <script>
        console.log("200");
    </script>
    <!-- 外联 -->
    <script src="./js/01-引入js.js"></script>

2.js输出到控制台:
1.每天都要用 主要用于调试,包括进入公司之后:
console.log(“日志”);
2. 一次打印多个数据到控制台:
console.log(‘大聪明’, ‘未知’, ‘21’, [100,200,300],{name:‘大聪明’,age:‘21’,gender:‘male’});
:前两个非常常用,拿来进行代码调试
3.打印详细信息:
console.dir(new String(‘123’));
: 第三个常用

以下不常用,了解就行:
console.error(‘打印错误信息’);
console.warn(‘警告信息’);
console.info(‘普通信息’)

3.事件:
事件就是js能够监听到页面上发生的所有的动作
事件三要素:
1.事件源:你操作的动作
2.事件:动作
3.事件处理函数:要做的事情

语法:
事件源.function() {
函数体就是你要做的事情
}
如何拿到页面的标签: document.querySelector(‘选择器[属性=“值”]’),遇到连接符,去掉连接符,后面的首字母大写。

修改标签的内容:document.querySelector(‘选择器名’).innerHTML
代码如下:

<style>
        .light {
            width: 120px;
            height: 120px;
            border-radius: 50%;
            background-color: black;
        }
    </style>
    <div class="light">

    </div>
    <input type="button" value="开关">
    <script>
        // 如何拿到页面的标签 document.querySelector('input[type="button"]'),遇到连接符,去掉连接符,后面的首字母大写
        document.querySelector('input[type="button"]').onclick = function() {
            document.querySelector('.light').style.backgroundColor = '#00f';
            document.querySelector('.light').style.width = '200px';
            document.querySelector('.light').style.height = '200px';

            //修改标签的内容
            document.querySelector('.light').innerHTML = '大聪明';
        }
    </script>

学习js

1.基础语法:
1.JS里面是严格区分大小写的,包括变量、函数名等
2.注释:单行注释(CTRL+/)和多行注释(shift+alt+A )
3.空格:拿来排版的,对语法没有要求

2.变量及变量的声明
变量是用来缓存数据的
1.使用var(暂时)来声明:variable
2.使用字母、数字、下划线、$来命名,不能使用数字开头,不要使用保留字
3.严格区分大小写
4.命名时一定要见名知意
5.使用的变量必须声明,不然会报错
6.使用=给变量赋值
代码如下:

<script>
        // 见名知意
        var username;
        var userName;
        var user_name;
        var _this;
        var $this;

        var passwdd = '123456';
    </script>

3.变量的类型(JS是弱类型语言,在声明变量的时候不需要指定变量类型):

3.1基础类型
1.数字类型:不区分整数、小数、实点数等等,就是number;
(JS不适合进行科学计算,精确度不够)
NaN:Not a Number 不是一个数,但是类型是number;
NaN:和任何值都不相等,包括他自己;
NaN:在和任何数字进行计算时,返回的是NaN;
parseInt:把数字转换成整数。
代码如下:

<script>
        var age = 21;
        console.log(age);
        console.log(typeof(age));

        var num = 22.15;
        console.log(typeof(num));

        // JS不适合科学计算
        var n = 0.2 - 0.1;
        console.log(n);

        var m = 0.3 - 0.2;
        console.log(m);

        var i = 1 * 'abc';//NaN
        console.log(i);
    </script>

2.字符串类型:文本类型
定义:用引号引起来的;
引号:单引号(‘’)、双引号(“”)、反引号(``);
反引号支持引入变量
定义字符串的时候,使用单引号的情况比较多,是一种习惯
要注意空格和空字符不是一个东西
练习代码:

<script>
        // 定义字符串的时候,使用单引号的情况比较多,是一种习惯
        var username = '大聪明';
        console.log(username);

        // 用引号引起来的就是字符串
        var num = '100';
        console.log(typeof(num));

        var s = ' '//这里是一个空格,不是空字符
        console.log(typeof s);

        var space = '';//空字符  长度是0
        console.log(space);

        var gender1 = "male";
        var gender2 = "female";

        // 如何在单引号里写单引号,在双引号里写双引号 转义:使用反斜杠
        var str = '我是\'大聪明\'';
        console.log(str);

        //反引号  `` 字符模板 (好用  支持可以引入变量)
        var stuname = '大聪明';
        var gender = 'male';
        var $age = 22;
        var mydescript = `我是${stuname}, 性别${gender},年龄${$age}`;
        console.log(mydescript);

        // 获取字符串的长度  空格和空字符不是一个东西
        var str1 = '50 0 ';
        console.log(str1.length);
    </script>

3.布尔Boolean值:
true
false

<script>
        var b1 = true;
        var b2 = false;
        console.log(b1);
    </script>

4.Undefined:声明的变量没有赋值 undefined typeof 是undefined

5.Null:空 null typeof 是object
Js里面一切皆为对象;
万物皆空 。
代码如下:

<script>
        var b = null;
        console.log(b);
        console.log(typeof b);//null的类型是object

        console.log(null == undefined);//true   值是相等的
        console.log(null === undefined);//false  但是类型是不同的
    </script>

3.2基础类型的特征:
基础变量的值是不可以修改的,改变的是内存的引用地址
例子如下(代码与注释):

<script>
        var num = 100;//这个100是不能被修改的
        //100占用了内存空间,但是变量不再引用他,会出现浪费内存的情况,js解释器会进行垃圾回收,去检查该内存还有没有被引用,如果不存在引用,有时间就是引用数量为0,就释放内存、GC

        //基础变量的值是不可以修改的,改变的是内存的引用地址
        num = 200;
        console.log(num);
    </script>

3.3引用类型:

1.数组
是一类数据的集合;比如学生姓名、考试成绩等;。
[0,123,4,5];
数组里面的每一个单元我们叫做元素:。
数组本质上是对象,是对象的一种特殊表现;
Arr.length;可以获取数组的长度
数组可分为一维数组、二维数组和多维数组
代码:

<script>
        var arr = ['apple', 'pear', 'banana', 'orange'];
        console.log(arr);
        console.log(arr[3]);
        console.log(typeof arr);//object

        //二维数组
        var arr1 = [[1,2,3],[4,5,6],[7,8,9,[10,12,[13,15]]]];
        console.log(arr1[1][1]);//5
        console.log(arr1[2][3][2][1]);//15
    </script>

2.对象

对象用于描述一个事物,JS里面一切皆为对象;
创建对象的方式:
1.var obj1 = new Object();
2.var obj1 = {}
使用点(.)获取属性对应的值,不支持变量
使用[]获取属性对应的值 支持变量 支持表达式
练习代码如下:

<script>
        var obj = {
            name:'大聪明',
            age:18,
            gender:'female'
        };
        //使用点(.)获取属性对应的值
        console.log(obj.name);//不支持变量
        //使用[]获取属性对应的值  支持变量 支持表达式
        console.log(obj[a]);

        var b = 'na';
        console.log(obj[b + 'me']);

        //创建对象的方式
        var obj1 = new Object();//var obj1 = {}
        console.log(obj1);
    </script>

3.JSON格式的数据
本质上就是个对象

<script>
        var result = {
            codde:1,
            error:0,
            data:[{
                title:'望远镜1',
                price:12000,
                sku:80,
                keywords:['天文爱好者', '火星', '精密仪器']
            },{
                title:'望远镜2',
                price:12000,
                sku:80,
                keywords:['天文爱好者', '火星100', '精密仪器']
            },{
                title:'望远镜3',
                price:12000,
                sku:80,
                keywords:['天文爱好者', '火星', '精密仪器']
            }]
        };

        console.log(result.data[1].keywords[1]);//火星100
        console.log(typeof result);
    </script>

4.函数:
函数名后面跟小括号,表示函数的执行;
使用return返回函数的执行结果;
如果没有renturn来返回值,那么他的返回值是undefined;
代码如下:

<script>
        /* sum:函数名
        m,n:形参
        {}里面是函数体 */
        function sum(m,n) {
            return m+n;
        }
        var r = sum(1.,50);
        console.log(r);
        console.log(typeofsum);//function
    </script>

3.4变量类型-类型转换
练习代码及注释如下:

<script>
    //把数字类型转换为字符串
        var a = 100;
        console.log(a);
        console.log(typeof (a.toString()));
        console.log(typeof(a+''));

        var b = 1;
        var c = '2'
        console.log(b+c);//12

        //字符串转数字
        var str = '100';
        console.log(typeof(Number(str)));//显示的转换
        console.log(typeof (str/1));//隐式转换

        //转换成布尔类型  所有的false情况
        console.log(!!0);
        console.log(!!-0);
        console.log(!!'');
        console.log(!!null);
        console.log(!!undefined);
        console.log(!!NaN);
        console.log(!!false);

        //空数组与空对象指向的是地址
        console.log(!![]);//true
        console.log(!!{});//true
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值