JavaScript变量、数据类型、运算符

news2024/11/25 14:51:01

1. 变量

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 
        1. 变量命名:
            (1) 由字母(A-Z,a-z),数字(0-9),下划线(_),美元符号($)组成; 
            (2) 严格区分大小写; 
        2. 在JS中,不声明也可以赋值使用,不同于其他高级语言!
     -->
    <script>
        var myname =  prompt('请输入名字');
        alert(myname);

        qq = 1728098300;        //在JS中,没有声明,直接赋值,此时OK
        console.log(qq);

        console.log(email);     //error, 没有声明,也没有赋值,此时报错

        var $sex;               //可以以 $, _,开头进行变量命名

        var _test ;
        console.log(_test);     //undefined
    </script>
</head>
<body>
    
</body>
</html>

2. 数据类型

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 
        js的变量的类型是只有程序在运行过程当中,根据等号右边的值来确定的!
        另外注意:在js中,我们一般推荐使用‘’单引号!因为html标签里的属性使用的是双引号!
        js是动态语言,变量的数据类型是可以动态改变的!
     -->
     <!-- 
         JS中的简单数据类型说明:
            Number          数字型,包含整型值和浮点型值        
            Boolean         true, false
            String          字符串类型(注意:JS中推荐使用'')
            Undefined       var num;        // 声明但没有赋值,所以undefined
            Null            var a = null;   //变量a为空值
      -->
    <script>

        //1. 变量的数据类型是可以动态改变的!(本来x被定义为数字型,后来又变成了字符串型的!)
        var x = 10;
        x = 'Hello World!';

        //2. 进制
        var num1 = 010;     //8进制
        var num2 = 0x9;     //16进制

        //3. 数值的最大值和最小值
        console.log(Number.MAX_VALUE);
        console.log(Number.MIN_VALUE);
        console.log(Number.MAX_VALUE * 2);      //Infinity
        console.log(-Number.MAX_VALUE * 2);     //-Infinity
        console.log('jl' - 100);                //NaN, not a number
        console.log(isNaN(12));                 //false
        console.log(isNaN('string'));           //true

        //4. String 
        var string1 = 'jjl "jljjljl';
        var string2 = "jljljljl'\nljjlj";       //转义字符 '\n'
        console.log(string1);
        console.log(string2);
        var str = "hello World!";               // alert(str.length) = 12
        //字符串+任何类型值 => 都将变成字符串类型
        str += 13;
        console.log(str + 'jljl' + Age);
        var Age = 18;
        console.log('今年' + Age + '岁');
        console.log(typeof(str));       //String
        console.log(typeof Age);        //Number

        //5. 数据类型转换
            //(1) other type => string
                var NUM = 11;
                var str1 = NUM.toString();
                console.log(typeof str1);
                console.log(String(NUM));
            //(2) string => num
            console.log(parseInt('14'));
            console.log(parseFloat('34.21'));
            console.log(Number('12'));
            console.log(parseInt('12-0'));
            //(3) 利用算术运算符隐式转换【- ,* ,/, 没有+】
            console.log('18'-0);            //Number型
            console.log('123' - '120');     //Number型
            console.log('123' - '12');      //Number型
            console.log('123' + '2');       //实际是字符串型,'1232'

        //6. Boolean
        console.log(true + 100);
            //other type -> Boolean
        console.log(Boolean(''));           //false
        console.log(Boolean(0));            //false
        console.log(Boolean(NaN));          //false
        console.log(Boolean(null));         //false
        console.log(Boolean(undefined));    //false
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

在这里插入图片描述

3. 运算符

3.1 比较运算符

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        console.log(18 == '18');    //true, 隐式转换
        console.log(18 === '18');   //false, 全等运算符(要求值 和 数据类型必须全部一致)
        console.log(18 !== '18');   //true
    </script>
</head>

<body>
</body>
</html>

在这里插入图片描述

3.2 逻辑运算符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        //1. 逻辑与短路运算:表达式1 && 表达式2 
            //(1) 如果表达式1为真,则返回表达式2;
            //(2) 如果表达式1为假,则返回表达式1;
            //(3) 快速记忆:
            //      表达式1 && 表达式2      =>      如果表达式1为真, 则返回表达式2, 否则返回表达式1; 
                console.log(123 && 456);    //456
                console.log(0 && 456);      //0

        //2. 逻辑或短路运算:表达式1 || 表达式2 
            //(1) 如果表达式1为真,则返回表达式1;
            //(2) 如果表达式1为假,则返回表达式2;
            //(3) 快速记忆:
            //      表达式1 || 表达式2      =>      如果表达式1为真, 则返回表达式1, 否则返回表达式2; 
                console.log(123 || 456);         //123
                console.log(0 || 456 || 14);      //456


    var num = 9;
    if(num > 98 || num % 3==0)
        console.log('是的!');

    //本来str是一个String型,它与88直接比较,好比是先转换成了数值,然后再与88比较;
    var str = prompt('Hello,please input:>');
    console.log(typeof str);        //string
    if(str > 88)
        console.log(">88!");
    else 
        console.log("<88!");
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

3.3 instanceof运算符

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /*
            1. instanceof运算符返回一个布尔值,表示对象是否为某个构造函数的实例; 
        */
        function Vehicle() {}
        var v = new Vehicle();
        console.log(v instanceof Vehicle); // true
        console.log(Vehicle.prototype.isPrototypeOf(v)); // 同上,与上等价
    </script>


    <script>
        /*
            2. 由于instanceof检查整个原型链,因此同一个实例对象,可能会对多个构造函数都返回true; 
               (1) 下面代码中,d同时是Date和Object的实例,因此对这两个构造函数都返回true; 
        */
        var date = new Date();
        console.log(date instanceof Date); // true
        console.log(date instanceof Object); // true
    </script>


    <script>
        /*
            3. instanceof运算符的一个用处,是判断值的类型; 
                (1) 注意,instanceof运算符只能用于对象,不适用原始类型的值; 
                    console.log('hello' instanceof String);      // false
        */
        var x = [1, 2, 3];
        var y = {};
        console.log(x instanceof Array);     // true
        console.log(y instanceof Object);    // true
    </script>
</body>

</html>

在这里插入图片描述

3.4 delete运算符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 
        1. 用来删除对象的某个属性; 
        2. 
            a. delete object.property
            b. delete object['property']
     -->
</head>
<body>
    <script>
        var object = {
            num: 101,
            name: 'XingWei',
            study() {
                console.log('XingWie like studying!');
            },
            play: function() {
                console.log('XingWei like playing!');
            }
        }
        delete object.num; 
        delete object['name'];
        delete object.study; 
        console.log(object);        
            /* 
                {play: f}
                    >play: f()
                    >__proto__: Object
            */
    </script>
</body>
</html>

在这里插入图片描述

3.5 空值合并运算符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 
        ??运算符:详见 19_ES6语法特性/08_运算符的扩展
     -->
</head>
<body>
    
</body>
</html>

3.6 typeof

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 
        1. typeof 操作符返回一个字符串,表示未经计算的操作数的类型; 
     -->
</head>
<body>
    <script>    
        console.log(typeof 23);                     // 'number'
        console.log(typeof 'Hello');                // 'string'
        console.log(typeof true);                   // 'boolean'
        console.log(typeof undeclaredVariable);     // 'undefined'
    </script>
</body>
</html>

在这里插入图片描述

3.7 super

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 
        1. super关键字用于 ```访问和调用一个对象的父对象上的函数```; 
        2. 语法:
            (1) super([arguments]);                     调用/访问 父对象/父类的构造函数
            (2) super.functionOnParent([arguments]);    调用/访问  父对象/父类上的方法
        3. 在子类的构造函数中必须首先调用super()函数, 否则报错; 
        4. 在子类中通过super调用父类中的函数;
            (1) 调用父类中的普通函数; 
            (2) 调用父类中的静态函数: ```此时在子类中调用父类中静态函数的那个函数必须被修饰成static函数, 否则报错```;  
     -->
</head>
<body>
    <script>
        class Father {
            constructor(num, name) {
                this.num = num;
                this.name = name;
            }
            money() {
                console.log('100$');
            }
            static houses() {
                console.log('has 10 houses!');
            }
        }
        
        class Son extends Father {
            constructor() {
                super(); 
                this.score = 100;
            }
            test() {
                super.money();      // 通过super调用父类中的普通函数
            }
            static _test() {
                super.houses();     // 通过super调用父类中的静态函数(_test()必须被修饰成static函数)
            }
        }
        let son = new Son();
        son.test(); 
        Son._test(); 
    </script>
</body>
</html>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/574477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GoWeb -- gin框架的入门和使用

认识gin go流行的web框架 go从诞生之初就带有浓重的开源属性&#xff0c;其原生库已经很强大&#xff0c;即使不依赖框架&#xff0c;也能进行高性能开发&#xff0c;又因为其语言并没有一定的设计标准&#xff0c;所以较为灵活&#xff0c;也就诞生了众多的框架&#xff0c;各…

使用朴素贝叶斯过滤垃圾邮件

使用朴素贝叶斯过滤垃圾邮件 文章目录 使用朴素贝叶斯过滤垃圾邮件流程准备数据构建训练集和测试集分类电子邮件 完整测试代码&#xff1a;欢迎关注公众号【三戒纪元】 朴素贝叶斯的最著名的应用&#xff1a;过滤电子邮件垃圾。 流程 收集数据&#xff1a;提供文本文件准备数据…

【ISO14229_UDS刷写】-3-$36诊断服务TransferData理论部分

总目录&#xff1a;&#xff08;单击下方链接皆可跳转至专栏总目录&#xff09; 《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014 目录 1 $0x36 TransferData诊断服务描述 2 0x36服务请求消息 2.1 0x36服务请求消息定义 2.2 0…

【C++系列P1】带上这篇基础小宝典,向特性奇多的C++进发吧!勇士们!(持续更新ing~)

前言 大家好吖&#xff0c;欢迎来到 YY 滴 C系列 &#xff0c;热烈欢迎&#xff01;(持续更新ing~&#xff09;本章主要内容面向刚刚学完C语言&#xff0c;准备或正在接触C的老铁。而往往C奇多的小特性和知识点让铁铁们头晕晕脑涨涨&#xff0c;因而本章收纳了许多C中零散的知识…

跨境电商系统源码分享,解决你的电商难题

作为跨境电商领域的专家&#xff0c;我在这里为你分享跨境电商系统源码&#xff0c;帮助你解决各种电商难题&#xff01;本文将为你提供全面而专业的指导&#xff0c;让你的电商之路更加顺畅。 为什么选择跨境电商系统源码&#xff1f; 跨境电商系统源码是现代电商业务管理的…

MongoDB超全语法大全

MongoDB 安装教程 一、介绍 mongodb数据库是非关系数据库&#xff0c;mongodb中没有表的概念&#xff0c;数据都是存储在集合中 易扩展&#xff1a; NoSQL数据库种类繁多&#xff0c; 但是⼀个共同的特点都是去掉关系数据库的关系型特性。 数据之间⽆关系&#xff0c; 这样就…

如何运行Node.js脚本及读取环境变量

目录 1、如何从CLI 运行Node.js 脚本 2、将字符串作为参数传递到节点&#xff0c;而不是文件路径 3、自动重新启动应用程序 4、如何从Node.js中读取环境变量 1、如何从CLI 运行Node.js 脚本 运行Node.js程序的通常方法是运行全局可用的Node命令&#xff08;一旦安装Node.js…

[论文分享] When deep learning met code search

When deep learning met code search [ESEC/FSE 2019] Jos Cambronero MIT CSAIL U.S.A. Hongyu Li Facebook, Inc. U.S.A. SeohyunKim Facebook,Inc. U.S.A. KoushikSen EECSDepartment,UCBerkeley U.S.A. SatishChandra Facebook,Inc. U.S.A. 最近有多个关于使用深度神经网…

ASP.NET 未能找到类型或命名空间名称“HttpRequestMessage”

引入System.Net.Http后&#xff0c;运行页面还是报错 using System.Net.Http;chatGPT解释需要安装Microsoft.AspNet.WebApi.Client包&#xff0c;IIS安装的包文件存储在bin目录下&#xff0c;安装包后bin目录多出了一些列文件 运行页面后还是报错 需要在web.config配置文件…

【ISO14229_UDS刷写】-6-$34,$35,$36,$37诊断服务用于downloading下载/uploading上载数据的消息流示例

总目录&#xff1a;&#xff08;单击下方链接皆可跳转至专栏总目录&#xff09; 《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014【ISO14229_UDS刷写】-1-$34诊断服务RequestDownload理论部分https://blog.csdn.net/qfmzhu/article…

VM600 CPUR2 机架控制器和通信接口卡

VM600 CPUR2和IOCR2机架控制器和通信接口卡对是一个中央处理器(CPU)卡对&#xff0c;作为Meggitt振动计产品线中VM600机架机械保护系统(MPS)和/或状态监控系统(CMS)的系统控制器和数据通信网关。 注:不同版本的CPUx/IOCx框架控制器和通信接口卡对可用&#xff0c;如下所示: C…

初探 Compose for Wear OS:实现一个简易选择APP

前言 俗话说&#xff0c;人生有三大难题&#xff1a;早上吃啥、中午吃啥、晚上吃啥。 这个问题一度困扰着无数的人&#xff0c;直到一款帮你选择吃什么的神器《今天吃啥》出现&#xff0c;人们再也不用为了每天吃啥而犯愁了。 哈哈&#xff0c;以上纯属抖机灵。 最近访问谷歌…

Spring MVC数据绑定和响应

数据绑定 在程序运行时&#xff0c;Spring MVC接收到客户端的请求后&#xff0c;会根据客户端请求的参数和请求头等数据信息&#xff0c;将参数以特定的方式转换并绑定到处理器的形参中。Spring MVC中将请求消息数据与处理器的形参建立连接的过程就是Spring MVC的数据绑定。 …

电力监控系统在中原科技城智慧能源配电工程中的应用

摘 要&#xff1a;随着社会经济的快速发展&#xff0c;我国变电站正朝着现代化的方向不断发展&#xff0c;自动化设备以及继电保护装置凭借自身优异性能而获得广泛应用。本文介绍的AM5SE系列的微机保护装置&#xff0c;可以针对中原科技城智慧能源配电工程中不同保护对象提供对…

真无线蓝牙耳机什么牌子好?盘点五款质量好的蓝牙耳机

相信很多人都有过这样的经历&#xff0c;早 晚高峰像沙丁鱼般被挤在公交或地铁上&#xff0c;嘈杂的环境、工作的劳累让你只想听听音乐追追剧&#xff0c;给自己一些放松的时光。可拿出有线耳机却常常被挤掉&#xff0c;更有被扯到耳朵的时候。想换一款蓝牙耳机&#xff0c;但面…

Kubernetes 证书详解

K8S 证书介绍 在 Kube-apiserver 中提供了很多认证方式&#xff0c;其中最常用的就是 TLS 认证&#xff0c;当然也有 BootstrapToken&#xff0c;BasicAuth 认证等&#xff0c;只要有一个认证通过&#xff0c;那么 Kube-apiserver 即认为认证通过。下面就主要讲解 TLS 认证。 …

chatgpt赋能python:Python动作捕捉:何为动作捕捉及其应用

Python动作捕捉&#xff1a;何为动作捕捉及其应用 介绍 动作捕捉是一种技术&#xff0c;可将人或物体的运动转换为数字形式。在过去的几十年里&#xff0c;动作捕捉已被广泛应用于电影制作、游戏开发、医学研究等领域。 Python是一种功能强大的编程语言&#xff0c;已成为许…

AI 工具分享第 4 期:13 款国外免费AI视频生成工具

0. 未来百科 未来百科&#xff0c;是一个知名的AI产品导航网站 —— 为发现全球优质AI工具而生 。目前已 聚集全球3000优质AI工具产品 &#xff0c;旨在帮助用户发现全球最好的AI工具&#xff0c;同时为研发AI垂直应用的创业公司提供展示窗口&#xff0c;迎接未来的AI时代。未来…

Revit建模|Revit风管怎么绘制?

​绘制风管是机电工程重要的一环&#xff0c;对于不少刚接触Revit的小伙伴来说似乎还无从下手&#xff0c;今天就让小编来告诉大家在Revit中绘制风管的方法。 一、在Revit绘制风管 第一步&#xff1a;首先我们先在revit的界面中项目文件找到风管。 第二步&#xff1a;打开后我…

医疗IT系统安科瑞隔离电源装置在医院的应用

【摘要】介绍该三级综合医院采用安科瑞隔离电源系统5件套&#xff0c;使用落地式配电柜安装方式&#xff0c;从而实现将TN系统转化为IT系统&#xff0c;以及系统绝缘情况监测。 【关键词】医用隔离电源系统&#xff1b;IT系统&#xff1b;绝缘情况监测&#xff1b;三级综合医院…