【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

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou