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.rhkb.cn/news/330585.html

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

相关文章

【论文速读】|探索ChatGPT在软件安全应用中的局限性

本次分享论文&#xff1a;Exploring the Limits of ChatGPT in Software Security Applications 基本信息 原文作者&#xff1a;Fangzhou Wu, Qingzhao Zhang, Ati Priya Bajaj, Tiffany Bao, Ning Zhang, Ruoyu "Fish" Wang, Chaowei Xiao 作者单位&#xff1a;威…

[Linux] 进程概念

目录 1.冯诺依曼硬件体系结构 2.操作系统&#xff08;OS&#xff09; 3.系统接口 4.进程的概念 5.进程状态 6.四个其他概念 7.环境变量 8.进程地址空间 1.冯诺依曼硬件体系结构 在冯诺依曼体系结构中&#xff0c;计算机是由输入、输出、存储设备和中央处理器cpu组成的。图中体结…

子比主题ACG美化插件[全开源]

WordPress插件是一种可以扩展和增强WordPress网站功能的应用程序。子比主题ACG美化插件听起来像是一个专门为ACG&#xff08;动画、漫画、游戏&#xff09;爱好者设计的美化插件&#xff0c;它可能包含多种功能来改善网站的外观和用户体验。 内置功能开关100意味着这个插件提供…

【电子学会】2023年09月图形化一级 -- 芝麻开门

芝麻开门 1. 准备工作 &#xff08;1&#xff09;删除小猫角色&#xff0c;添加角色Key&#xff1b; &#xff08;2&#xff09;删除白色背景&#xff0c;添加背景Castle 1和Pathway。 2. 功能实现 &#xff08;1&#xff09;点击绿旗&#xff0c;钥匙在舞台中间&#xff…

机械臂与Realsense D435 相机的手眼标定ROS包

本教程主要介绍机械臂与 Realsense D435 相机手眼标定的配置及方法。 系统&#xff1a;Ubuntu 20.0.4 ◼ ROS&#xff1a;Noetic ◼ OpenCV 库&#xff1a;OpenCV 4.2.0 ◼ Realsense D435&#xff1a;librealsense sdk&#xff08;2.50.0&#xff09;、realsense-ros 功能包&…

基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 反向传播网络&#xff08;BP&#xff0c;多层感知器MLP&#xff09; 4.2 径向基函数网络&#xff08;RBF&#xff09; 4.3 卷积神经网络&#xff08;CNN&#xff09; 4.4 长短期记忆网…

ST-SLAS Technology 实验室自动化与筛查学会技术

文章目录 一、期刊简介二、征稿信息三、期刊表现四、投稿须知五、出版支持 一、期刊简介 SLAS Technology ——SLAS技术强调促进和改进生命科学研发的科学和技术进步;药物递送;诊断;生物医学和分子成像&#xff1b;以及个性化和精准医疗。这包括高通量和其他实验室自动化技术;…

网络信息安全

目录 引言 网络信息安全的基本概念 定义 主要目标 网络信息安全的范围 主要威胁 恶意软件 黑客攻击 拒绝服务攻击 社交工程 内部威胁 常用技术和防护措施 加密技术 防火墙 入侵检测和防御系统 访问控制 多因素认证 安全审计和监控 安全培训和意识提升 未来发…

【软件工程】【23.10】p3

关键字&#xff1a; 软件工程定义及目的、需求规约定义及性质、模块的控制域及作用域、类和类图、调试特征、瀑布模型

JAVA 6

这次我学习了第六次Java课程 这次课程我学习了新的理论 面向对象 对象可以是任何事物Object 在Java中对象可以具体为类 这便是许多的类 类 分为两个大方面 属性 方法 在代码中还有一个部分那就是运行代码 在类中的属性和方法也是有所不同 public-公开 任何代码都能访…

初识C语言——第二十八天

代码练习1&#xff1a; 用函数的方式实现9*9乘法表 void print_table(int n) {int i 0;int j 0;for (i 1; i< n; i){for (j 1; j< i; j){printf("%d*%d%-3d ", i, j, i * j);}printf("\n");}}int main() {int n 0;scanf("%d", &a…

hive初始化失败报错:Error: Duplicate key name ‘PCS_STATS_IDX‘ (state=42000,code=1061)

意思是key name ‘PCS_STATS_IDX’ (state42000,code1061)重复了&#xff0c;问题出在不是第一次初始化&#xff0c;因为我们在hive-site.xml中配置了 javax.jdo.option.ConnectionURL jdbc:mysql://192.168.200.137:3306/metastore?createDatabaseIfNotExisttrue JDBC conne…

JavaScript初识2

目录 JS语言是解释型语言 一、运算符 1.赋值运算符 2.一元运算符 3.比较运算符 4.逻辑运算符 5.运算符优先级 二、语句 1.表达式和语句 2.分支语句 &#xff08;1&#xff09;If 语句 &#xff08;2&#xff09;三元表达式 &#xff08;3&#xff09;switch 语句 …

项目十二:简单的python基础爬虫训练

许久未见&#xff0c;甚是想念&#xff0c;今日好运&#xff0c;为你带好运。ok&#xff0c;废话不多说&#xff0c;希望这门案例能带你直接快速了解并运用。&#x1f381;&#x1f496; 基础流程 第一步&#xff1a;安装需要用到的requests库&#xff0c;命令如下 pip inst…

c++ vector实现出现的一些问题

目录 前言&#xff1a; 浅拷贝问题: typename指定类型&#xff1a; 前言&#xff1a; 最近学习了c vector的使用&#xff0c;然后也自己实现了一下vector的部分重要的功能。然后在其中出现了一些问题&#xff0c;在这就主要记录一下我解决哪些bug。 浅拷贝问题: 在实现res…

IDEA中一些常见操作【持续更新】

文章目录 前言善用debugidea中debug按钮不显示自动定位文件【始终选择打开的文件】idea注释不顶格【不在行首】快速定位类的位置【找文件非常快】创建文件添加作者及时间信息快速跳转到文件顶端 底端 前言 因为这些操作偶尔操作一次&#xff0c;不用刻意记忆&#xff0c;有个印…

C++:关联容器及综合运用:

关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。关联容器因此相比与顺序容器支持高效的关键字查找和访问。 其底层数据结构&#xff1a;顺序关联容器 ->红黑树&#xff0c;插入…

炫酷gdb

在VS里面调试很方便对吧&#xff1f;&#xff08;F5直接调试&#xff0c;F10逐过程调试--不进函数&#xff0c;F11逐语句调试--进函数&#xff0c;F9创建断点&#xff09;&#xff0c;那在Linux中怎么调试呢&#xff1f; 我们需要用到一个工具&#xff1a;gdb 我们知道VS中程…

可转债日内自动T+0交易,行情推送+策略触发+交易接口

说明 目前这个项目已编译打包,下载即可测试,直接生成多平台可执行文件&#xff0c;详见运行方法。行情部分与策略弱相关&#xff0c;拆分解耦单独作为一个项目。行情项目请移步GitHub - freevolunteer/hangqing: A股行情订阅工具&#xff0c;支持股票/可转债level2/level2数据&…

【系统架构师】-案例篇(十五)SOA、微服务与数据库

1、可复用构件应具备哪些属性 可用性&#xff1a;构件必须易于理解和使用。 质量&#xff1a;构件及其变形必须能正确工作。 适应性&#xff1a;构件应该易于通过参数化等方式在不同语境中进行配置。 可移植性&#xff1a;构件应能在不同的硬件运行平台和软件环境中工作。 可变…