【JavaScript 1—基础知识点】:宏观概述

2024-08-25 22:18

本文主要是介绍【JavaScript 1—基础知识点】:宏观概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

导读:JavaScript是一门新的(也可以说是旧的或者半新语言),里面有很多的知识点都能和已有的知识产生共鸣。但是,虽然简单,相同点也有很多,也有不同点。我脑袋也不好使,所以对于我来说,还是有必要再重复的总结回顾一下,增添一下印象。

一、俯瞰

1,定义

JavaScript:是一种具有面向对象能力的、解释性的程序设计语言。它基于对象和事件驱动并具有相对安全性的客户端脚本语言。它不需要再一个语言环境下运行,而只需要支持它的浏览器即可。它的主要目的是,验证发往服务器端的数据,增加Web互动,加强用户体验度等。

2,图示

3,说明

3.1,问题1

:注释很重要,帮助人们理解程序,但为什么在代码嵌入的时候,不需要提供注释?

:在代码嵌入的过程中,以前使用注释是为了让不支持JavaScript的浏览器能直接跳过JavaScript语言代码,而使其界面友好。现在的浏览器,均支持JavaScript语言,所以,在代码嵌入的时候,无需提供注释。

3.2,问题2

:为什么代码嵌入的时候,无添加代码?

:当JS代码很多很庞大的时候,我们需要将其另存为一个文件(封装),然后通过src标签进行调用。在封装好的文件中,已经包括你要执行的所有代码,所以不需要添加代码。如果有需要,则需要在另外的标签里填写,或者修改封装好的代码文件。

理解:就像是我们封装好了一个方法,当我们在别处调用时,我们不能在调用的过程中,再对封装好的方法进行修改,而如有必要的要,我们也只能返回原有类中的方法进行修改。

 

二、近看

1,注释

ECMAScript使用C风格的注释,包括单行注释和块级注释。
//单行注释
/*
 *多行(块级)注释
 *
*/

2,变量

在JavaScript里,变量的定义通过操作符Var,比如说定义一个字符串变量:var strTest=“测试”,而我们在别的地方,C#中,则会这么定义:String strTest=“测试”,如果在VB中,则可能会出现Dim strTest  as  string等。

虽然这些都有差异,但我认为这都不是问题,就像人的头发可以这么梳也可以那么梳一样,说到底还就是一把头发,一个方式而已。

3,面向对象

在JavaScript里,有对于庞大JS代码的抽象文件,我将这个理解为封装。也有属于它的继承机制(通过原型实现的继承),虽然没有见到多态,但我觉得它也是一种面向对象的语言,虽然形式和以前的不一样。在这里,我得说明一下,什么叫做通过原型实现的继承机制。

 

3.1,基于类的面向对象 和基于原型的面向对象方式比较(摘抄:全面理解面向对象的 JavaScript)


在基于类的面向对象方式中,对象(object)依靠 类(class)来产生。而在基于原型的面向对象方式中,对象(object)则是依靠 构造器(constructor)利用 原型(prototype)构造出来的。举个客观世界的例子来说明二种方式认知的差异。例如工厂造一辆车,一方面,工人必须参照一张工程图纸,设计规定这辆车应该如何制造。这里的工程图纸就好比是语言中的 类 (class),而车就是按照这个 类(class)制造出来的;另一方面,工人和机器 ( 相当于 constructor) 利用各种零部件如发动机,轮胎,方向盘 ( 相当于 prototype 的各个属性 ) 将汽车构造出来。

 


事实上关于这两种方式谁更为彻底地表达了面向对象的思想,目前尚有争论。但笔者认为原型式面向对象是一种更为彻底的面向对象方式,理由如下:

首先,客观世界中的对象的产生都是其它实物对象构造的结果,而抽象的“图纸”是不能产生“汽车”的,也就是说,类是一个抽象概念而并非实体,而对象的产生是一个实体的产生;

其次,按照一切事物皆对象这个最基本的面向对象的法则来看,类 (class) 本身并不是一个对象,然而原型方式中的构造器 (constructor) 和原型 (prototype) 本身也是其他对象通过原型方式构造出来的对象。

再次,在类式面向对象语言中,对象的状态 (state) 由对象实例 (instance) 所持有,对象的行为方法 (method) 则由声明该对象的类所持有,并且只有对象的结构和方法能够被继承;而在原型式面向对象语言中,对象的行为、状态都属于对象本身,并且能够一起被继承(参考资源),这也更贴近客观实际。

最后,类式面向对象语言比如 Java,为了弥补无法使用面向过程语言中全局函数和变量的不便,允许在类中声明静态 (static) 属性和静态方法。而实际上,客观世界不存在所谓静态概念,因为一切事物皆对象!而在原型式面向对象语言中,除内建对象 (build-in object) 外,不允许全局对象、方法或者属性的存在,也没有静态概念。所有语言元素 (primitive) 必须依赖对象存在。但由于函数式语言的特点,语言元素所依赖的对象是随着运行时 (runtime) 上下文 (context) 变化而变化的,具体体现在 this 指针的变化。正是这种特点更贴近 “万物皆有所属,宇宙乃万物生存之根本”的自然观点。在 程序清单 1中 window 便类似与宇宙的概念。

 

三、感受

年纪增长,越来越发现自己的脑子不记事儿了。不过,这也好,正是这不记事儿的脑子,催促我学习了就回头总结。

有时候,一看那个知识点觉得非常非常的熟悉,就不想总结,总觉得什么都差不多,总结也没多大收获。但是,事实上是没有两个完全一样的东西的,还是总结吧。一样的知识,权当重复+回顾+新体会;不一样的知识,嘿嘿嘿嘿.......

 

 

这篇关于【JavaScript 1—基础知识点】:宏观概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106796

相关文章

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat