Day48 Javascript详解

Day48 Javascript详解

文章目录

  • Day48 Javascript详解
    • 一、什么是javascript
    • 二、javascript特点
    • 三、 Javascript的历史
    • 四、Javascript vs Java
    • 五、JS的基本数据类型
    • 六、JS基本数据类型的特殊点
    • 七、数组

一、什么是javascript

JavaScript是一种高级的、解释型的编程语言,主要用于在网页上实现交互功能。它是一种脚本语言,可以嵌入到HTML页面中,通过浏览器解释执行,实现动态效果和用户交互。

Javascript是基于对象和事件驱动的脚本语言,主要是嵌入到HTML中,应用在客户端,动态操作网页元素,也可以作用于服务端。

二、javascript特点

  • 动态性:JavaScript是一种动态语言,可以在运行时修改和调整程序的行为。
  • 事件驱动:通过事件处理程序来响应用户的交互操作,实现网页的动态效果。
  • 跨平台性:JavaScript可以在各种操作系统和浏览器中运行,实现跨平台的网页开发。
  • 交互性:表单校验,信息提示,动态数据图表,ajax异步提交,解析服务端响应数据等等。
  • 安全性:不可以直接访问本地硬盘。
  • 轻量级:JavaScript代码通常是以文本形式嵌入到HTML中,不需要额外的编译步骤,使得开发和调试更加便捷。

三、 Javascript的历史

  1. 1995年:JavaScript最初由Netscape公司的Brendan Eich设计开发,最初被称为LiveScript。在Netscape Navigator 2.0中首次发布,用于增强网页的交互性和动态效果。
  2. 1996年:Netscape将LiveScript更名为JavaScript,与Sun Microsystems的Java合作,推动JavaScript的发展。微软也推出了类似的脚本语言JScript。
  3. 1997年:ECMAScript标准化组织发布了第一版ECMAScript标准(ECMA-262),以规范JavaScript语言的实现。这一标准定义了JavaScript的核心语法和功能。
  4. 2000年:DOM(Document Object Model)标准化,使JavaScript可以操作网页上的元素和内容,实现动态页面效果。
  5. 2005年:Ajax(Asynchronous JavaScript and XML)的概念被提出,使得通过JavaScript异步加载数据成为可能,极大地提升了网页的交互性和用户体验。
  6. 2009年:Node.js项目启动,使JavaScript不仅可以在浏览器中运行,还可以在服务器端运行,开启了JavaScript全栈开发的时代。
  7. 2015年:ECMAScript 6(ES6)发布,引入了许多新的语法和特性,如箭头函数、模块化、类等,大大提升了JavaScript的开发效率和可维护性。
  8. 至今:JavaScript持续发展,成为最流行的前端开发语言之一,涵盖了前端开发、后端开发、移动应用开发等多个领域,拥有庞大的开发者社区和丰富的生态系统。

四、Javascript vs Java

JavaScript只需浏览器解析就可以执行,而java需要先编译成字节码文件,然后通过JVM来执行。

JavaScript是一种弱类型语言,java是强类型语言。

一个完整 JavaScript实现由以下3个部分组成

在这里插入图片描述

DOM – Document Object Model

BOM – Browser Object Model

五、JS的基本数据类型

1、分类:

  • boolean - 布尔类型
  • undefined - 未定义类型
  • null - 空类型
  • number - 数值型
  • string - 字符串类型

在这里插入图片描述

2、代码示例:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><script type="text/javascript">//number - 数值型//注意:number类型不分整数和小数var num = 100;console.log(num);//100num = 123.123;console.log(num);//123.123//string - 字符串类型//注意:string类型的值可以用单引号也可以用双引号括起来var str = 'abc';console.log(str);str = "abc";console.log(str);//boolean - 布尔类型var bool = true;console.log(bool);//truebool = false;console.log(bool);//false//undefined - 未定义类型var v;console.log(v);v = undefined;console.log(v);//null - 空类型var xx = null;console.log(xx);</script></body>
</html>

六、JS基本数据类型的特殊点

1、特殊点:

  1. 字符串(String)
    • 字符串是以单引号(’ ')或双引号(" ")包裹的文本数据。
    • 字符串是不可变的,一旦创建就不能被修改,任何对字符串的操作都会返回一个新的字符串。
  2. 数字(Number)
    • JavaScript中的数字是浮点数,没有整型和浮点型之分。
    • 存在特殊的数字值,如NaN(Not a Number)、Infinity(无穷大)和 -Infinity(负无穷大)。
  3. 布尔值(Boolean)
    • 布尔值只有两个取值:true和false。
    • 布尔值常用于条件判断和逻辑运算。
  4. 空(Null)
    • 表示一个空值或不存在的值。
    • typeof null 的结果是 “object”,这是 JavaScript 的一个历史 Bug。
  5. 未定义(Undefined)
    • 表示未赋值的变量或属性。
    • 未定义的变量会有一个默认值 undefined。
  6. 符号(Symbol)
    • ES6新增的数据类型,表示独一无二的值。
    • 可以用来创建对象的私有属性名。

2、代码示例:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><script type="text/javascript">//number类型的特殊点//注意:Infinity表示无穷大console.log(Infinity + (-Infinity));//NaN - Not a Number//string类型的特殊点//注意:string加号是字符串拼接符,其余是算数运算符var str1 = "10";var str2 = "3";console.log(str1 + str2);//103console.log(str1 - str2);//7console.log(str1 * str2);//30console.log(str1 / str2);//3.3333333335console.log(str1 % str2);//1//boolean类型的特殊点//注意:""、0、undefined、null表示falseif(""){console.log("true");}else{console.log("false");}if(0){console.log("true");}else{console.log("false");}if(undefined){console.log("true");}else{console.log("false");}if(null){console.log("true");}else{console.log("false");}//undefined vs nullvar v1 = undefined;var v2 = null;console.log(typeof v1);//undefinedconsole.log(typeof v2);//object//== vs ===//==判断两个值是否相等//===判断两个值+类型是否相等var v3 = 10;var v4 = "10";console.log(v3 == v4);//trueconsole.log(v3 === v4);//false</script></body>
</html>

七、数组

1、基本步骤:

  1. 创建一个数组
  2. var arr = [1,2,3];
  3. 更新数组的元素
  4. 添加数组的元素
  5. 删除数组的元素(delete arr[1],注意,此处只是将该元素留空,数组的长度并不会发生变化)

注意:数组的数组:var a = [[1,2,3],[4,5,6]];

2、代码示例:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><script type="text/javascript">var arr = ["小俊","小杨","小雷"];//设置指定下标上的元素arr[0] = "小刘";//获取指定下标上的元素console.log("获取指定下标上的元素:" + arr[0]);//小刘//获取元素个数console.log("获取元素个数:" + arr.length);//添加元素arr[3] = "小陈";arr[4] = "小李";arr[10] = "小王";//删除元素delete arr[4];console.log("--------------------");//遍历数组 - for循环for(var i = 0;i<arr.length;i++){console.log(arr[i]);}console.log("--------------------");//遍历数组 -- for-in//注意:遍历有效元素的下标(undefined的元素认为是无效元素)for(var index in arr){console.log(arr[index]);}</script></body>
</html>

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

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

相关文章

cmake编译redis6.0源码总结

1配置clion使用cygwin模拟linux环境&#xff0c;先下载cygwin后配置 2导入源码&#xff0c;配置cmake文件 由于redis是基于Linux上的Makefile&#xff0c;所以Windows上需要配置CMakeLists.txt使用cmake工具编译运行。github上已经有人尝试编写CMakeLists.txt文件&#xff0c…

MCF-Microbial Cell Factories

文章目录 一、期刊简介二、征稿信息三、期刊表现四、投稿须知五、投稿咨询 一、期刊简介 Microbial Cell Factories 是一份开放的同行评审期刊&#xff0c;涵盖了与微生物细胞作为重组蛋白和天然产物的生产者或作为工业兴趣的生物转化的催化剂的开发、使用和研究相关的任何主题…

【学习笔记】Windows GDI绘图(四)矩阵Matrix详解

矩阵Matrix 基于矩阵在GDI绘图的重要性&#xff0c;所以想深入了学习矩阵的相关属性与方法。 先上个本文中所有的函数图例演示吧。 原型&#xff1a; namespace System.Drawing.Drawing2D;public sealed unsafe class Matrix : MarshalByRefObject, IDisposableMatrix类封装…

系统架构师-考试-基础题-错题集锦2

108.总线-全双工、半双工&#xff1a; 109.软件配置管理-产品配置&#xff1a; 产品配置&#xff1a;指一个产品在其生命周期各个阶段所产生的各种形式和各种版本的文档、计算机程序、部件及数据的集合。 注意&#xff1a;选项中的需求规格说明、设计说明等均可归属于文档。 …

Netty学习02----使用多线程优化Selector

背景前置 在单线程环境下&#xff0c;使用一个线程同时绑定多个事件&#xff1a;连接事件、读事件、写事件。不能充分发挥多核CPU的优势&#xff0c;考虑使用多个线程&#xff0c;每个线程专门负责处理不同的事件&#xff0c;如下图所示&#xff1a;一个线程专门负责连接&#…

【ARK Survival Evolved】方舟:生存进化一键使用服务器开服联机教程

1、进入控制面板 2、第一次购买服务器会安装游戏端&#xff0c;大约5分钟左右&#xff0c;如果长时间处于安装状态请联系客服 3、设置游戏端口 方舟生存进化的设置需要三个端口&#xff0c;它们用于游戏端口&#xff08;必须为首选端口&#xff09;&#xff0c;查询端口&#…

uniapp中使用mockjs模拟接口测试总结(swiper轮播图示例)

完整总结下在uni-app中如何使用Mock.js模拟接口测试&#xff0c;这在后台接口未就绪的情况下非常有用。同时也给出个首页swiper轮播图的mock接口使用。网上的文章都不太完整&#xff0c;这里总结下完整的使用示例&#xff0c;同时也支持h5和小程序平台&#xff0c;分享给需要的…

webpack5 splitChunks分割代码

首先明确webpack 自身的打包行为 当splitChunks为false时&#xff0c;此时不启用任何打包设置 可以看到&#xff0c;静态引入全都打到一个chunk里&#xff0c;动态引入会拆分出来一个chunk,这是纯webpack无配置的打包&#xff0c; webpack会给每个模块打上标记 ,如下 { m…

Python使用multiprocessing实现多进程

大家好&#xff0c;当我们工作中涉及到处理大量数据、并行计算或并发任务时&#xff0c;Python的multiprocessing模块是一个强大而实用的工具。通过它&#xff0c;我们可以轻松地利用多核处理器的优势&#xff0c;将任务分配给多个进程并同时执行&#xff0c;从而提高程序的性能…

基于transformers框架实践Bert系列3-单选题

本系列用于Bert模型实践实际场景&#xff0c;分别包括分类器、命名实体识别、选择题、文本摘要等等。&#xff08;关于Bert的结构和详细这里就不做讲解&#xff0c;但了解Bert的基本结构是做实践的基础&#xff0c;因此看本系列之前&#xff0c;最好了解一下transformers和Bert…

【JavaEE】加法计算器与用户登录实战演练

目录 综合练习加法计算器1. 准备工作2. 约定前后端交互接口3. 服务器代码 用户登录1. 准备工作2. 约定前后端交互接口3. 服务器代码4. 调整前端页面代码 综合练习 理解前后端交互过程接⼝传参, 数据返回, 以及⻚⾯展⽰ 加法计算器 需求: 输⼊两个整数, 点击"点击相加&q…

56. UE5 RPG 给敌人添加AI实现跟随玩家

在这一篇里&#xff0c;我们要实现一下敌人的AI&#xff0c;敌人也需要一系列的行为&#xff0c;比如朝向英雄攻击&#xff0c;移动&#xff0c;在满足条件时施放技能。这些敌人的行为可以通过使用UE的内置的AI系统去实现。 在UE里&#xff0c;只要是基于Character类创建的蓝图…

安卓绕过限制直接使用Android/data无需授权,支持安卓14(部分)

大家都知道&#xff0c;安卓每次更新都会给权限划分的更细、收的更紧。   早在安卓11的时候还可以直接通过授权Android/data来实现操作其他软件的目录&#xff0c;没有之前安卓11授权的图了&#xff0c;反正都长一个样&#xff0c;就直接贴新图了。   后面到了安卓12~13的…

信息系统项目管理师0128:输出(8项目整合管理—8.6管理项目知识—8.6.3输出)

点击查看专栏目录 文章目录 8.6.3 输出 8.6.3 输出 经验教训登记册 经验教训登记册可以包含执行情况的类别和详细的描述&#xff0c;还可包括与执行情况相关的影响、建议和行动方案。经验教训登记册可以记录遇到的挑战、问题、意识到的风险和机会以及其他适用的内容。经验教训…

Debezium+Kafka:Oracle 11g 数据实时同步至 DolphinDB 解决方案

随着越来越多用户使用 DolphinDB&#xff0c;各式各样的应用场景对 DolphinDB 的数据接入提出了不同的要求。部分用户需要将 Oracle 11g 的数据实时同步到 DolphinDB 中来&#xff0c;以满足在 DolphinDB 中实时使用数据的需求。本篇教程将介绍使用 Debezium 来实时捕获和发布 …

npm介绍、常用命令详解以及什么是全局目录

目录 npm介绍、常用命令详解以及什么是全局目录一、介绍npm的主要功能npm仓库npm的配置npm的版本控制 二、命令1. npm init: 初始化一个新的Node.js项目&#xff0c;创建package.json文件。package.json是一个描述项目信息和依赖关系的文件。2. npm install <package_name&g…

LeetCode算法题:42. 接雨水(Java)

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3…

基于vue3速学angular

因为工作原因&#xff0c;需要接手新的项目&#xff0c;新的项目是angular框架的&#xff0c;自学下和vue3的区别&#xff0c;写篇博客记录下&#xff1a; 参考&#xff1a;https://zhuanlan.zhihu.com/p/546843290?utm_id0 1.结构上&#xff1a; vue3:一个vue文件&#xff…

python:pycharm虚拟解释器报错环境位置目录为空

目录 解释器分控制台解释器 和 pycharm解释器 控制台解释器切换&#xff1a; pycharm解释器 解释器分控制台解释器 和 pycharm解释器 控制台解释器切换&#xff1a; 切换到解释器下 激活解释器 查看解释器 where python 激活成功 这时在控制台使用python xxx.py 可以…

​​​【收录 Hello 算法】10.1 二分查找

目录 10.1 二分查找 10.1.1 区间表示方法 10.1.2 优点与局限性 10.1 二分查找 二分查找&#xff08;binary search&#xff09;是一种基于分治策略的高效搜索算法。它利用数据的有序性&#xff0c;每轮缩小一半搜索范围&#xff0c;直至找到目标元素或搜索区间为空…