javaweb系列-js引入、输出、变量、数据类型、运算符

news2024/11/26 19:35:14

1.1 js介绍

js可以让我们的页面更加的智能,让页面和用户进行交互。

1.2 引入方式

同样,js代码也是书写在html中的,那么html中如何引入js代码呢?主要通过下面的2种引入方式:

第一种方式:内部脚本,将JS代码定义在HTML页面中

  • JavaScript代码必须位于<script></script>标签之间

  • 在HTML文档中,可以在任意地方,放置任意数量的<script>

  • 一般会把脚本置于<body>元素的底部,可改善显示速度

例子:

<body>   
<script>
        alert('Hello JS');
</script> 
</body>

第二种方式:外部脚本将JS代码定义在外部 JS文件中,然后引入到 HTML页面中

  • 外部JS文件中,只包含JS代码,不包含<script>标签

  • 引入外部js的<script>标签,必须是双标签

例子:

<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 src="js/demo.js"></script>
</head>

注意:demo.js中只有js代码,没有<script>标签

1.3 基础语法

1.3.1 书写语法

掌握了js的引入方式,那么接下来我们需要学习js的书写了,首先需要掌握的是js的书写语法,语法规则如下:

  • 区分大小写:与 Java 一样,变量名、函数名以及其他一切东西都是区分大小写的

  • 每行结尾的分号可有可无

  • 大括号表示代码块

  • 注释:

    • 单行注释:// 注释内容    快捷键ctrl+/

    • 多行注释:/* 注释内容 */     快捷键ctrl+shift+/

输出语句:

<script>
        //输出警告
         alert('输出警告 JS');     
        //页面输出
        document.write('页面输出js');
        //控制台输出
        console.log('控制台输出js');

</script>

1.3.2 变量

js中主要通过如下3个关键字来声明变量的:

关键字解释
var早期ECMAScript5中用于变量声明的关键字,全局变量,作用域大,可以重复定义
letECMAScript6中新增的用于变量声明的关键字,相比较var,let只在代码块内生效,不能重复定义
const声明常量的,常量一旦声明,不能修改

 在js中声明变量还需要注意如下几点:

  • JavaScript 是一门弱类型语言,变量可以存放不同类型的值 。

  • 变量名需要遵循如下规则:

    • 组成字符可以是任何字母、数字、下划线(_)或美元符号($)

    • 数字不能开头

    • 建议使用驼峰命名

var定义变量:

<script>
    var i = 1;
    var i = "a";   //可以重复定义
    alert(i);      //输出a
</script>
<script>
   {
    var i = 1;
   }    
    alert(i);   //代码块外面仍可访问i,i是全局作用域
</script>

let定义变量:

<script>
   {
    let i = 1;
   }    
    alert(i);   //代码块外面访问i,i无法输出,i是局部作用域
</script>

 const定义常量:

<script>
   {
    const i = 1;   
    alert(i); 
   }      
</script>

1.3.3 数据类型和运算符

虽然js是弱数据类型的语言,但是js中也存在数据类型,js中的数据类型分为 :原始类型 和 引用类型,具体有如下类型:

数据类型描述
number数字(整数、小数、NaN(Not a Number))
string字符串,单双引皆可
boolean布尔。true,false
null对象为空
undefined当声明的变量未初始化时,该变量的默认值是 undefined

使用typeof函数可以返回变量的数据类型,接下来我们需要通过书写代码来演示js中的数据类型

<script>
   alert(typeof 3);      //number
   alert(typeof 3.14);   //number
   alert(typeof NaN);    //number
   
   alert(typeof "a");     //string
   alert(typeof 'a');     //string

   alert(typeof null);     //object

   var a;
   alert(typeof a);     //nudefined  
</script>

js中的运算规则绝大多数还是和java中一致的,具体运算符如下:

运算规则运算符
算术运算符+ , - , * , / , % , ++ , --
赋值运算符= , += , -= , *= , /= , %=
比较运算符> , < , >= , <= , != , == , === 注意 == 会进行类型转换,=== 不会进行类型转换
逻辑运算符&& , || , !
三元运算符条件表达式 ? true_value: false_value

注意:==进行比较时,先比较类型是否一致,不一致就转换,然后比较值是否相等。

===进行比较,类型和值都一致时返回true,其他都是false。

<script>
     var age = 20;
     var _age = "20";
     var $age = 20;
    
     alert(age == _age);//true ,只比较值
     alert(age === _age);//false ,类型不一样
     alert(age === $age);//true ,类型一样,值一样

</script>

数据类型转换

转换成数据类型:

在js中,虽然不区分数据类型,但是有时候涉及到数值计算,还是需要进行类型转换的,js中可以通过parseInt()函数来进行将其他类型转换成数值类型。

<script>
   alert(parseInt ("12345"));      //12345
   alert(parseInt("12A45"));   //12   遇到非数字就结束
   alert(parseInt("a1234"));    //NaN  第一个就是非数字输出NaN   
</script>

其他数据类型转换为布尔类型:

0,null,undefined, "",NaN理解成false,反之理解成true。

“”是空字符串,可以转换成false;    “  ”不是空字符串,是包含空格的字符串,可以转换成true。

流程控制语句if,switch,for等和java保持一致。

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

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

相关文章

深度学习第J9周:Inception v3算法实战与解析

目录 一、理论基础 二、pytorch代码复现1.前期准备 2.代码复现 3.训练运行 3.2指定图片进行预测 三、总结 &#x1f368; 本文为[&#x1f517;365天深度学习训练营]内部限免文章&#xff08;版权归 *K同学啊* 所有&#xff09; &#x1f356; 作者&#xff1a;[K同学啊] &…

K_A39_001 基于STM32驱动TF卡模块读写数据 串口打印

K_A39_001 基于STM32驱动TF卡模块读写数据 串口打印 所有资源导航一、资源说明二、基本参数参数引脚说明 三、驱动说明时序对应程序: 四、部分代码说明1、接线引脚定义1.2、STM32F103C8T6TF卡模块 五、基础知识学习与相关资料下载六、视频效果展示与程序资料获取七、注意事项八…

【英语】大学英语CET考试,口语部分2(课程笔记)

文章目录 1、口语考试介绍与备考攻略1.1 口语考试介绍1.2 考试备考攻略 上课老师&#xff1a;金格妃 上课时间&#xff1a;4h 1、口语考试介绍与备考攻略 方法是通用的&#xff1a;CET4/6&#xff0c;雅思托福&#xff0c;BEC等 近年四六级考试的长度是接近雅思托福的&#x…

【大数据】Presto(Trino)配置参数以及 SQL语法

文章目录 一、概述二、Trino coordinator 和 worker 节点作用1&#xff09;Trino coordinator 节点作用2&#xff09;Trino worker 节点作用 三、Trino 参数详细讲解1&#xff09;coordinator 节点配置1、config.properties 配置文件2、jvm.config 配置文件3、log.properties 配…

libevent高并发网络编程 - 04_libevent实现http服务器

文章目录 1 evhttp简介2 相关的APIevhttp_new()evhttp_free()evhttp_bind_socket()evhttp_set_gencb()evhttp_set_cb()evhttp_request_get_uri()evhttp_request_get_command()evhttp_request_get_input_headers()evhttp_request_get_input_buffer()evhttp_request_get_output_h…

MagicalCoder系列教程(二):如何下载本地安装启动项目?

目录 下载启动 1 windows下载 2 linux下载 3 安装启动方式&#xff1a; 3.1 Windows免安装 3.2 其他操作系统&#xff08;Mac等其他操作系统&#xff09; 3.3 启动安装失败 MagicalCoder可视化开发平台&#xff1a;轻松搭建业务系统&#xff0c;为企业创造更多价值&…

【故障排查】【杂项】ingress + Jenkins 上传hpi文件(8MB)报错413

1、ingress Jenkins 上传hpi文件&#xff08;8MB&#xff09;报错 413 Request Entity Too Large 处理方法&#xff1a;ingress文件加上annotations ingress-nginx 实际上为nginx&#xff0c;所以在此调整。apiVersion: extensions/v1beta1 kind: Ingress metadata:name: jen…

Dreaming of Freedom

题目&#xff1a; 题意解析&#xff1a; n 个程序员要在 m 个算法里选出最受欢迎的算法&#xff0c;每轮投票每个程序员都会在剩下的算法中选择一个。 在第一轮投票前&#xff0c;m 种算法都可以选择&#xff1b;每轮投票后&#xff0c;只保留有最多票数的算法&#xff1b;只…

蓝桥杯提单day2【题解】

题单链接 蓝桥杯题单day2【题目】_奔跑的星黛露的博客-CSDN博客 题解 蓝肽子序列 链接 https://www.lanqiao.cn/problems/1030/learning/?page1&first_category_id1&sortstudents_count&second_category_id3&tags%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92,%E…

VRRP高级特性——管理VRRP

目录 管理VRRP备份组与业务VRRP备份组 管理VRRP备份组的两种实现方式 配置管理备份组 当在设备上配置了多个VRRP备份组时&#xff0c;为了减少设备间交互大量的VRRP协议报文&#xff0c;可以将其中一个VRRP备份组配置为管理VRRP备份组&#xff08;mVRRP&#xff09;&#xf…

WordPress PHP版本:2023年用于WordPress的最佳PHP版本

不同的 WordPress 版本可以与多个 PHP 版本一起使用。然而&#xff0c;WordPress社区官方为每个 WP 版本推荐了特定的 PHP 要求。选择最好的 WordPress PHP 版本对于确保网站安全且没有错误至关重要。 本文从 WordPress 的推荐、最低和最新 PHP 版本的角度讨论了 PHP 和 WordP…

SpringBoot——如何获取配置文件中的配置信息

SpringBoot——如何获取配置文件中的配置信息 简单介绍&#xff1a; 之前我们看到了我们是如何对SpringBoot以及SpringBoot中不同技术进行配置的&#xff0c;我们舍弃了之前在Spring中的对不同的技术使用不同的配置信息的方式&#xff0c;使用将所有技术的配置写在了一个配置…

Mac(苹果)安装nvm进行node版本控制

Mac&#xff08;苹果&#xff09;安装nvm进行node版本控制 错误演示nvm安装下载命令更改网络环境配置环境 相信我一般的初学者问题看这一片就够了 错误演示 如上图所示&#xff0c;node的版本&#xff0c;与当前项目中的一些框架或者组件不支持时一般就会报这个错&#xff0c;…

一天吃透SpringCloud面试八股文

1、什么是Spring Cloud &#xff1f; Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序&#xff0c;提供与外部系统的集成。Spring cloud Task&#xff0c;一个生命周期短暂的微服务框架&#xff0c;用于快速构建执行有限数据处理的应用程序。 Sprin…

Portraiture4.1.0最新版PS/LR磨皮美白滤镜插件

Portraiture这款插件磨皮效率超高 是99%摄影师的必备插件 一秒磨皮&#xff0c;无卡顿&#xff0c;效果好 最新版Portraiture 2023磨皮效果提升很大 之前发布了Portraitrue4.0.3版 现已更新!本期带来最新版&#xff1a; 磨皮插件Portraiture 4.1.0版!portraiture最新版本…

LITCTF2023 部分WP

WEB 我Flag呢&#xff1f; 查看源码就有flag了 彩蛋 导弹迷踪 Follow me and hack me 然后彩蛋www.zip解压即可 PHP是世界上最好的语言&#xff01;&#xff01; 直接可以命令执行,当时想了好久 Vim yyds 扫目录,有swp文件 作业管理系统 任意文件上传,传个马访问就…

十二、目标检测

文章目录 1、 目标定位2、特征点检测3、卷积网络的滑动窗口4、交并比(Intersection over Union)5、非最大值抑制(Non Max Suppression)6、anchor boxTHE END 1、 目标定位 \qquad 目标检测是图像识别中的更加复杂的应用情景&#xff0c;图像识别只需要输出某一幅图像的种类即可…

React面试题汇总1

1.React的严格模式如何使用&#xff0c;有什么用处&#xff1f; React中StrictMode严格模式_react.strictmode_前端精髓的博客-CSDN博客当我们使用 npx create-react-app my-app 创建一个项目的时候。项目中有一段如下所示的代码&#xff1a;ReactDOM.render( <React.Stric…

LeetCode_Day2 | 有意思的数组滑动窗口及螺旋矩阵

LeetCode_数组 977.有序数组的平方1.题目描述2.暴力法3. 双指针法 209.长度最小的子数组1.题目描述2.暴力法3.滑动窗口(双指针法) 59.螺旋矩阵1.题目描述2. 螺旋矩阵解法 977.有序数组的平方 1.题目描述 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字…

解决IDEA中集成Tomcat日志出现的乱码问题

解决IDEA中集成Tomcat日志出现的乱码问题 下面的方式可以解决的是解决的是idea中出现的控制台&#xff0c;Localhost日志以及Catalina日志乱码的问题 1.出现的乱码问题 你是不是也是遇到了这种的乱码的情况呢&#xff1f; 2.解决方法 1.打开conf文件夹。 2.设置输出的日志的编…