Javascript的优点和缺点_网页中添加javascript的方式及其优缺点-程序员宅基地

技术标签: 前端  javascript  开发语言  

今天来聊聊Javascript的优缺点.

因为是考虑执行速度, 因为解释型语言, JavaScript省掉了编译的步骤, 执行过程更轻量. 执行速度虽然不如c++, 但是因为有了V8引擎的加持, 速度要快过python.

其次,Javascript学习和理解起来很简单. 事实上, 它的第一个版本就是为了能在浏览器里, 验证用户在表单输入的内容是否规范. 所以javascript没有像其它语言一样很重的规范和限制, 同时和python一样, 它也是弱类型的动态语言.

由于主流的浏览器都支持JavaScript, 所以它很流行,几乎无所不在.

除了能做前端, 它还能做后端甚至移动端开发, 比如利用nodejs这类技术和相关的类库, 可以搭建起完整的后端体系. 一般用它的强类型版本typescript做后端开发, 做过后端的小伙伴的都知道, 模块化和强类型搞后端会更适合. 所以如果说只掌握一门语言就能做全栈开发, 那就是它了.

Javascript近10年进步飞速, 相关的组织每年都会发布新的语言标准,拓展语言的功能.

近些年出现的前端模块化框架比如React, vue更是让这门语言如虎添翼, 一种语言支不支持模块化, 完全决定了不同的命运, 在模块化之前维护几个js文件会非常头疼, 模块化解决了这个问题, 也直接导致JavaScript的社区变得非常活跃. 现在你能轻松的找到成熟的类库和包来解决手头的问题.

说完优点,再来看它的缺点.

由于Javascript运行在浏览器上, 用户可以看到这些代码, 因此它存在安全隐患. 黑客可以通过很多方式, 让用户执行提前设计好的恶意代码, 获取用户信息和替用户执行某些操作, 所以在开发之前, 要把潜在的安全问题和解决办法搞清楚: 比如XSS攻击, CSRF攻击,SQL注入以及相关的防范等等.

上面提到, 由于javascript的多种浏览器的支持和近些年的飞速发展, 导致不同浏览器可能对它的执行方式不尽相同. 旧版本的浏览器很可能不支持新的javascript语言功能. 因此需要在开发的时候,考虑相关的兼容性问题.

Javascript调试起来不方便. 因为它的执行环境大部分时候是浏览器, 所以没办法很高效得像其它语言一样在IDE里调试, 大部分时间只能根据控制台里的错误, 定位到源码并揣测错误发生的可能性.

浏览器里Javascript是被单线程执行的, 这往往导致一招不慎满盘皆输, 所以在开发的时候, 我们更要做好异常处理.

总结一下, 这期我们介绍了Javascript的优缺点, 它前端开发的立命根本, 也不仅限于前端开发, 优秀的开发社区赋予了这个语言更多的可能性.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Walk_The_Talk/article/details/120893882

智能推荐

逻辑回归(混淆矩阵与评估指标)_多变量逻辑回归分析-程序员宅基地

文章浏览阅读3.3k次。跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!1 多变量逻辑回归上一篇文章中笔者对于什么是逻辑回归,以及它能用来干什么做了一个详细的介绍;同时,对于如何通过开源库进行建模训练并预测也给出了详细的示例,并对训练得到的决策边界进行了可视化。因此,本篇文章将主要围绕多变量逻辑回归,多分类问题和分类评价指标这三个方面进行介绍。所为多变量逻辑回归其实就是一个样本点有多个特征属性..._多变量逻辑回归分析

使用EM管理实例-程序员宅基地

文章浏览阅读96次。repository就是存放Database Control在管理数据库所用到的信息的多个表。创建repository:emca -repos create创建Database Control:emc..._#./em_control -l

C++1-C语言和C++的区别_c语言++1-程序员宅基地

文章浏览阅读2.8k次。C语言和C++的区别_c语言++1

无人机项目跟踪记录七十二———降压电路模块详解_怎样看降压模块是几v生成的-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏4次。下图为降压电路模块:从左向右介绍,MIC5205_3.3为输出是3.3伏的电压调节器件。VIN接入5伏电压,GND管脚接地,EN使能端接5伏电压代表芯片不受其他信号控制,固定输出3.3V电压。本电路不考虑噪声影响,故而BYP端不接电容。输出端接三个电容起到滤波作用。左侧电路给单片机和系统其他芯片提供3.3伏的电压。右侧和左侧基本相同,不同的是使能管脚EN受单片机控制,以此来启动或者关闭此供电模块,右侧电路是给蓝牙芯片供电电路。..._怎样看降压模块是几v生成的

Qt 生成一个固定长度的随机字符串_qt 获取随机数 固定长度-程序员宅基地

文章浏览阅读5.5k次,点赞4次,收藏20次。概述我们都知道,使用Qt的qrand()可以生成一个随机的数字,比如说,要生成100以内的随机数,可以使用qrand()%100 来实现,那么如果要生成一个固定长度的随机字符串该怎么弄呢,其实原理很简单,就是事先准备好一个字符串数组,然后结合qrand()函数随机从字符串数组中通过循环取出来就可以啦。代码实现原理已经说过了,其实就是一个非常简单的算法,直接看代码:QString getRa..._qt 获取随机数 固定长度

itemchanged相關_powerbuilder itemchanged return-程序员宅基地

文章浏览阅读676次。 第一个疑问: 1、itemchanged: return 1 这里不接受变化数据,不允许移动焦点 2、itemerror: return 3 这里不接受变化数据,允许移动焦点return 1 发现事件触发情况为:itemchanged-->itemerror-->itemchanged-->itemerror. 为什么是两次? 第二个疑问: 1、itemchanged: return_powerbuilder itemchanged return

随便推点

关于三星S3C44B0X目标板的uClinux Bootloader_uclinux和bootloader区别-程序员宅基地

文章浏览阅读386次。2007-12-25 09:13:59 uClinux是为控制领域设计的嵌入式Linux操作系统,它沿袭了主流Linux的大部分特性,并进行了一定幅度的裁减。其设计主要针对没有内存管理单元(MMU)的微处理器,例如基于ARM7TDMI内核的S3C44B0X。 嵌入式Linux系统通常由三部份组成:Bootloader、Kernel和File System_uclinux和bootloader区别

iOS 防止截屏、录屏技术_ios 禁止录屏-程序员宅基地

文章浏览阅读4.1k次。看图演示,可防止截屏和录屏可以开启或者关闭,是否允许截屏和录屏。_ios 禁止录屏

机器人路径规划之RRT算法-程序员宅基地

文章浏览阅读2.3k次,点赞3次,收藏32次。关注:决策智能与机器学习,深耕AI脱水干货作者:矮脚兽 来源:知乎专栏地址:https://www.zhihu.com/column/c_1278371819016101888如需转载..._六自由度机械臂rrt路径规划原理

CentOS 7.2下KVM虚拟化配置以及常用操作_部署kvm 修改存储路径-程序员宅基地

文章浏览阅读804次。分享CentOS7.2下KVM虚拟化配置以及常用操作的步骤。1.开始安装kvma.检查你的系统是否支持虚拟化grep -Ei 'vmx|svm' /proc/cpuinfo如果有输出内容,则支持,其中intelcpu支持会有vmx,amd cpu支持会有svmb.通过yum安装虚拟化的软件包 1 2 yuminstall-ykvmvirt-* libvirt bridge-utilsqemu-img virt-install..._部署kvm 修改存储路径

维纳滤波原理极其Python实现_python 维纳滤波参数-程序员宅基地

文章浏览阅读4.2k次,点赞2次,收藏16次。从信号与系统的角度出发,有一部分噪声是系统的固有噪声,另一部分,则是对信号的某种响应,换言之,这部分噪声可以理解为一个噪声系统。所以滤除后者,可以理解为去除噪声系统的影响,换言之,就是针对噪声系统做反卷积。考虑到求比证难,不妨把这个问题再简化一下,如果找到了一组值,那么如何确定这组值是对的?如果噪声系统可以测量,那么反卷积自然可以顺利执行,否则那就要对这个噪声系统进行估计,维纳滤波履行的就是这个思路。,然后找到这个误差量的某个统计值的极值,考虑到正负号的问题,这个统计量有可能是方差。为系统的噪声,如果为。_python 维纳滤波参数

Flutter给APK签名—两种方式(android 安装包)-程序员宅基地

文章浏览阅读6.6k次,点赞2次,收藏7次。给未签名的apk签名,可以先检查下apk有没有签名。方式一:手动签名,二、配置自动签名_apk签名

推荐文章

热门文章

相关标签