-
python弱类型好处_JavaScript弱类型语言的优缺点有哪些
2020-12-20 14:53:48像vb,php等就属于弱类型语言·例如:在vbscript中,可以将字符串 12 和整数 3 进行连接得到字符串 123,然后可以把它看成整数 123,而不需要显式转换。弱类型有时显得很方便,有时却又极易出错。比如:var result=5...弱类型语言也称为弱类型定义语言。与强类型定义相反。像vb,php等就属于弱类型语言·
例如:在vbscript中,可以将字符串 12 和整数 3 进行连接得到字符串 123,然后可以把它看成整数 123,而不需要显式转换。
弱类型有时显得很方便,有时却又极易出错。比如:
var result=5+5; //two numbers
alert(result); //outputs “10”
var result=5+‘5’; // a number and a string
alert(result); //outputs “55”
因此使用弱类型语言也要格外注意数据类型防止出错
弱类型语言的优缺点有哪些
JavaScript的特点
(1)。一种解释性执行的脚本语言。
同其他脚本语言一样,JavaScript也是一种解释性语言,其提供了一个非常方便的开发过程。JavaScript的语法基本结构形式与C、C++、Java十分类似。但在使用前,不像这些语言需要先编译,而是在程序运行过程中被逐行地解释。JavaScript与HTML标识结合在一起,从而方便用户的使用操作。
(2)。一种基于对象的脚本语言。
其也可以被看作是一种面向对象的语言,这意味着JavaScript能运用其已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。
(3)。一种简单弱类型脚本语言。
其简单性主要体现在:首先,JavaScript是一种基于Java基本语句和控制流之上的简单而紧凑的设计,从而对于使用者学习Java或其他C语系的编程语言是一种非常好的过渡,而对于具有C语系编程功底的程序员来说,JavaScript上手也非常容易;其次,其变量类型是采用弱类型,并未使用严格的数据类型。
(4)。一种相对安全脚本语言。
JavaScript作为一种安全性语言,不被允许访问本地的硬盘,且不能将数据存入服务器,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失或对系统的非法访问。
(5)。一种事件驱动脚本语言。
JavaScript对用户的响应,是以事件驱动的方式进行的。在网页(Web Page)中执行了某种操作所产生的动作,被称为“事件”(Event)。例如按下鼠标、移动窗口、选择菜单等都可以被视为事件。当事件发生后,可能会引起相应的事件响应,执行某些对应的脚本,这种机制被称为“事件驱动”。
(6)。一种跨平台性脚本语言。
JavaScript依赖于浏览器本身,与操作环境无关,只要计算机能运行浏览器,并支持JavaScript的浏览器,就可正确执行,从而实现了“编写一次,走遍天下”的梦想。
因此,JavaScript是一种新的描述语言,其可以被嵌入到HTML文件中。JavaScript语言可以做到响应使用者的需求事件(例如表单的输入),而不需要任何的网络来回传输资料。所以当一位使用者输入一项资料时,此资料数据不用经过传给服务器(server)处理再传回来的过程,而直接可以被客户端(client)的应用程序所处理。
JavaScript的优缺点
(1).JavaScript的优点:
《1》.JavaScript减少网络传输。
在JavaScript这样的用户端脚本语言出现之前,传统的数据提交和验证工作均由用户端浏览器通过网络传输到服务器上进行。如果数据量很大,这对于网络和服务器的资源来说实在是一种无形的浪费。而使用JavaScript就可以在客户端进行数据验证。
《2》.JavaScript方便操纵HTML对象。
JavaScript可以方便地操纵各种页面中的对象,用户可以使用JavaScript来控制页面中各个元素的外观、状态甚至运行方式,JavaScript可以根据用户的需要“定制”浏览器,从而使网页更加友好。
《3》.JavaScript支持分布式运算。
JavaScript可以使多种任务仅在用户端就可以完成,而不需要网络和服务器的参与,从而支持分布式的运算和处理。
(2).JavaScript的局限性:
《1》。各浏览器厂商对JavaScript支持程度不同。
目前在互联网上有很多浏览器,如Firefox、Internet Explorer、Opera等,但每种浏览器支持JavaScript的程度是不一样的,不同的浏览器在浏览一个带有JavaScript脚本的主页时,由于对JavaScript的支持稍有不同,其效果会有一定的差距,有时甚至会显示不出来。
《2》。“Web安全性”对JavaScript一些功能牺牲。
当把JavaScript的一个设计目标设定为“Web安全性”时,就需要牺牲JavaScript的一些功能。因此,纯粹的JavaScript将不能打开、读写和保存用户计算机上的文件。其有权访问的唯一信息就是该JavaScript所嵌入的那个Web主页中的信息,简言之,JavaScript将只存在于它自己的小小世界—Web主页里。
常用JS框架介绍及其优缺点
(1).Jquery
《1》。介绍
JQuery 是一款同 prototype 一样优秀 js 开发库类,特别是对 css 和 XPath 的支持,使我们写 js 变得更加方便!如果你不是个 js 高手又想写出优秀的 js 效果,那么 JQuery 可以帮你达到目的!并且简介的语法和高的效率一直是jQuery追求的目标。
《2》。优点:注重简介和高效,js 效果有 yui-ext 的选择,因为 yui-ext 重用了很多 jQuery 的函数
《3》。缺点:据说太嫩,历史不悠久。
(2).EXT
《1》。介绍
基于 Yahoo UI 的扩展包 yui-ext 是具有 CS 风格的 Web 用户界面组件,能实现复杂的 Layout 布局,界面效果可以和 backbase 媲美,而且使用纯 javascript 代码开发。真正的可编辑的表格 Edit Grid,支持 XML 和 Json 数据类型,直接可以迁入 Grid。许多组件实现了对数据源的支持,例如动态的布局,可编辑的表格控件,动态加载的 Tree 控件、动态拖拽效果等等。从 1.0 beta 版开始同 Jquery 合作,推出基于 jQuery 的 Ext 1.0,提供了更多有趣的功能。
《2》。优点:结构化,类似于 java 的结构,清晰明了,底层用到了 Jquery 的一些函数,使整合使用有了选择,最重要的一点是界面太让让人震撼了。
《3》。缺点:太过复杂,整个界面的构造过于复杂。
(3).Dojo
《1》。介绍
Dojo 是目前最为强大的JS框架,它在自己的 Wiki 上给自己下了一个定义,Dojo 是一个用 JavaScript 编写的开源的DHTML工具箱。Dojo 很想做一个“大一统”的工具箱,不仅仅是浏览器层面的,野心还是很大的。Dojo 包括 Ajax、Browser、Event、Widget 等跨浏览器 API,包括了 JS 本身的语言扩展,以及各个方面的工具类库,和比较完善的 UI 组件库,也被广泛应用在很多项目中,他的 UI 组件的特点是通过给 HTML 标签增加 TAG 的方式进行扩展,而不是通过写 JS 来生成,Dojo 的 API 模仿 Java 类库的组织方式。用 Dojo 写 Web OS 可谓非常方便。Dojo 现在已经 4.0 了,Dojo 强大的地方在于界面和特效的封装,可以让开发者快速构建一些兼容标准的界面。
《1》。优点:库相当完善,发展时间也比较长,功能强大,据说利用 Dojo 的 io.bind() 可以实现 comet 看见其功能强大非一般,得到 IBM 和 SUN 的支持。
《2》。缺点:文件体积比较大,200多KB,初次下载相当慢,此外,Dojo 的类库使用显得不是那么易用,JS语法增强方面不如 Prototype
(4).Prototype
《1》。介绍
它是一个非常优雅的 JS 库,定义了 JS 的面向对象扩展,DOM 操作API,事件等等,以 Prototype 为核心,形成了一个外围的各种各样的 JS 扩展库,是相当有前途的 JS 底层框架,值得推荐,感觉也是现实中应用最广的库类(RoR 集成的 AJAX JS 库),之上还有 Scriptaculous 实现一些JS组件功能和效果。
《2》。优点:基本底层,易学易用,甚至是其他一些js特效开发包的底层,体积算是最小的了。
《3》。缺点:如果说缺点,可能就是功能是他的弱项
(5).dScriptaculous
《1》。介绍
Scriptaculous 是基于prototype.js 框架的 JS 效果。包含了 6 个 js 文件,不同的文件对应不同的 js 效果,所以说,如果底层用 prototype 的话,做js效果用 Scriptaculous 那是再合适不过的了,连大名鼎鼎的 digg 都在用他,可见不一般
《2》。优点:基于prototype 是最大的优点,由于使用 prototype 的广泛性,无疑对用户书锦上添花。
《3》。缺点:刚刚兴起,需要时间的磨练
(6).Mochikit
《1》。介绍
MochiKit 自称为一个轻量级的 js 框架。MochiKit 主要受到 Python 和 Python 标准库提供的很多便利之处的启发,另外还缓解了浏览器版本之间的不一致性。其中的 MochiKit.DOM 尤其方便,能够以比原始 JavaScript 更友好的方式处理 DOM 对象。MochiKit.DOM 大部分都是针对 XHTML 文档定制的,如果与 MochiKit 和 Ajax 结合在一起,使用 XHTML 包装的微格式尤其方便。Mochikit 可以直接对字符串或者数字格式化输出,比较实用和方便。它还有自己的 js 代码解释器
《2》。优点:MochiKit.DOM 这部分很实用,简介也是很突出的
《3》。缺点:轻量级的缺点
(7).Mootools
《1》。介绍
MooTools 是一个简洁,模块化,面向对象的 JavaScript 框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的 JavaScript 代码。Mootools 跟 prototypejs 相类似,语法几乎一样。但它提供的功能要比 prototypejs 多,而且更强大。比如增加了动画特效、拖放操作等等。
《2》。优点:可以定制自己所需要的功能,可以说是 prototypejs 的增强版。
《3》。缺点:不大不小,具体应用具体分析。
(8).Moo.fx
《1》。介绍
Moo.fx是 一个超级轻量级的 javascript 特效库(7k),能够与 prototype.js 或mootools 框架一起使用。它非常快、易于使用、跨浏览器、符合标准,提供控制和修改任何 HTML 元素的 CSS 属性,包括颜色。它内置检查器能够防止用户通过多次或疯狂点击来破坏效果。moo.fx整体采用模块化设计,所以可以在它的基础上开发你需要的任何特效。
《2》。优点:小块头有大能耐
《3》。缺点:这么小了,已经不错了
打开APP阅读更多精彩内容
点击阅读全文
-
Python语言特性和优缺点及什么是鸭子类型?
2019-07-08 16:17:27强类型指的是不会发生隐式类型转换(PHP和Javascript就是弱类型语言) 2)为什么要用Python? 胶水语言,轮子多,应用广泛(优点) 语言灵活,生产力高(优点) 性能问题、代码维护问...1)Python语言特性?
Python是静态还是动态类型?是强类型还是弱类型?
Python是动态强类型语言(不少人误以为是弱类型)
动态还是静态指的是编译期还是运行期确定类型
强类型指的是不会发生隐式类型转换(PHP和Javascript就是弱类型语言)
2)为什么要用Python?
胶水语言,轮子多,应用广泛(优点)
语言灵活,生产力高(优点)
性能问题、代码维护问题、python2/python3兼容问题(缺点)
3)什么是鸭子类型?
“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以称为鸭子”
关注点在对象的行为,而不是类型(duck typing)
比如file,String,scoket对象都支持read/write方法(file like object)
再比如定义了__iter__魔术方法的对象都可以for迭代
(鸭子类型更关注接口的方法,而非类型)
class Duck: def quack(self): print("gua gua") class Person: def quack(self): print("我是人类, 但我也会 gua gua gua") def in_the_forest(duck): duck.quack() def game(): donald = Duck() john = Person() in_the_forest(donald) in_the_forest(john) # 输出类型 print(type(donald)) print(type(john)) # 判断类型 print(isinstance(donald, Duck)) print(isinstance(john, Person)) game()
输出结果:
gua gua
我是人类, 但我也会 gua gua gua
<class '__main__.Duck'>
<class '__main__.Person'>
True
True
-
.net core 3.0 Signalr - 02 使用强类型的Hub
2019-10-05 21:32:55强类型的优缺点 优点强类型的Hub可以避免魔法函数名,相比弱类型更容易维护和发现问题,直接上代码 缺点特么的得多些好几行代码 代码 接口定义 /// <summary> /// 服务端接口 /// </summary> ...强类型的优缺点
- 优点
强类型的Hub可以避免魔法函数名,相比弱类型更容易维护和发现问题,直接上代码 - 缺点
特么的得多些好几行代码
代码
接口定义
/// <summary> /// 服务端接口 /// </summary> public interface IServerNotifyHub { } /// <summary> /// 客户端使用的接口 /// </summary> public interface IClientNotifyHub { // 这里我们定义一个统一的客户端通知方法 Task OnNotify(object data); }
实现
- 对之前的Hub进行修改,暂时就先通过OnNotify给当前所有客户端推送一个信息
public class NotifyHub : Hub<IClientNotifyHub>,IServerNotifyHub { public override async Task OnConnectedAsync() { await Clients.All.OnNotify(new { ConnectId = Context.ConnectionId }); await base.OnConnectedAsync(); } }
在api中调用Hub推送
大部分情况下,是通过客户端某个操作,比如:将任务分配给张三,那么在分配任务的这个api中会调用推送 推送给张三一个通知,xxx分配了一个任务给你,在Controller中注入强类型的Hub,代码如下
... private readonly IHubContext<NotifyHub,IClientNotifyHub> _notifyHub; public NotifyController(IHubContext<NotifyHub,IClientNotifyHub> notifyHub) { _notifyHub = notifyHub; }
至此,强类型的Hub介绍完毕,更多内容请通过快速导航查看下一篇
快速导航
标题 内容 索引 .net core 3.0 Signalr - 实现一个业务推送系统 上一篇 .net core 3.0 Signalr - 01 基础篇 下一篇 .net core 3.0 Signalr - 03 使用MessagePack压缩传输内容 源码地址 源码 官方文档 官方文档 - 优点
-
Python创始人与优缺点
2019-07-16 18:35:241.Python创始人与汇编语言种类 吉多·范罗苏姆 Python创始人 编译型和解释型 编译型语言首先是将源代码编译生成机器指令,再由...强类型定义语言和弱类型定义语言 强行转换数据类型 可忽略定义数据类型 2.py...1.Python创始人与汇编语言种类
吉多·范罗苏姆 Python创始人
编译型和解释型
编译型语言首先是将源代码编译生成机器指令,再由机器运行机器码 (二进制)。
解释型语言的源代码不是直接翻译成机器指令,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。
静态语言和动态语言
是否在代码运行过程中中检验数据类型
强类型定义语言和弱类型定义语言
强行转换数据类型 可忽略定义数据类型
python——解释型,强类型定义的动态语言
2.Python的优缺点
优点
- Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
- 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
- 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
- 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
- 可扩展性————如果需要一段关键代码运行得更快或者希望某些算法不公开,可以把部分程序用C或C++编写,然后在你的Python程序中使用它们。
- 可嵌入性————可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
缺点:
- 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因为Python是解释型语言,代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来
- 代码不能加密,因为PYTHON是解释性语言,如果要发布你的Python程序实际上就是发布源代码。
- 线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。。
-
2.typescript学习之基础数据类型
2020-07-16 14:48:401.强类型和弱类型 学习之前我们先来认识一下强类型和弱类型 强类型:定义变量同时还需要定义变量类型,比如:Java、c++、当然还有typescript; 弱类型 :定义变量时,变量类型可以忽略,一个变量允许被赋予不同类型... -
Go 语言的类型转换
2017-06-15 22:46:22在微服务这块,Go 和 Java 相比,有哪些优缺点? 怎么忍受 Go 的 error 处理? Go 的设计者为什么把语言设计为强类型? 鸭子类型在 Go 中是如何得以体现的? 能讲下编程范式和编程习惯上的异同吗? 调试起来 ... -
【无为则无心&Python基础】— 13、Python语言是什么类型语言(补充内容)
2020-04-24 15:59:42文章目录一、动态类型语言和静态类型语言1、什么是动态类型语言和静态类型语言2、两者区别动态类型语言优缺点静态类型语言优缺点二、强类型定义语言和弱类型定义语言1、什么是强类型语言和弱类型语言2、两者区别3、... -
Python学习笔记_week1
2019-10-05 02:41:38Python学习笔记_week1 ...编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,Python是一门动态解释型的强类型定义语言。 Python的优缺点 Python解释器:CPython、IPython(金融用的多,... -
Python后端开发面试(二) 基础语法考察
2019-12-03 09:37:03Python作为后端语言的优缺点是什么?什么是鸭子类型?猴子补丁(Monkey Patch)什么是猴子补丁?什么场景会使用?什么是自省(Introspection)?什么是列表和字典生成式?Python版本差异与兼容Python3改进的功能兼容python2/... -
我做过的面试题
2010-04-18 21:57:00在面试过程中遇到一些面试...强类型数据集和弱类型数据集的区别和优缺点? 2. Postback 和 callback 区别 3. C# 实现冒泡排序 4. B/s 和 c/s 区别 5. Webservice... -
python变量顺序结构(一)
2020-10-22 10:31:06python第一节课python历史python应用python语言类型编译性和解释性编译性特点总结解释性特点总结动态语言和静态语言静态语言动态语言强类型定义语言和弱类型定义语言强类型定义语言弱类型定义语言python优缺点python... -
Python知识点整理(1) —— 语言基础
2019-03-16 19:31:37语言基础 python语言特性 静态or动态?...Python作为后端语言优缺点 轮子多,胶水语言,应用广泛 语言灵活 性能问题、代码维护问题、python2/3兼容问题 鸭子类型 关注点在对象的行... -
常用的Javascript设计模式
2019-08-27 10:13:50不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员, 在短跑甚至拳击方面有一些优势,在练瑜伽上就欠缺一些。 术士和暗影牧师很容易成为一... -
python中weekid什么意思_Python学习笔记_week1
2021-02-09 19:31:31一、编程语言的分类编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,Python是一门动态解释型的强类型定义语言。Python的优缺点Python解释器:CPython、IPython(金融用的多,交互器)、PyPy... -
[转]常用的Javascript设计模式
2017-02-25 20:56:29《Practical ...不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员, 在短跑甚至拳击方面有一些优势,在练瑜伽上就欠缺一些。 术士和暗影牧师很容易成 -
关于设计模式的一些思考
2018-04-05 00:00:00关于设计模式的一些思考前言...不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员, 在短跑甚至拳击方面有一些优势,在练瑜伽上就欠缺一些。抽象工厂模式抽象 -
python新篇章学习之路了解篇(一)
2019-08-01 17:48:32python新篇章之基础知识(一)1编译语言优缺点2解释型语言优缺点3动态语言与静态语言的区别4强类型定义语言和弱类型定义语言的区别 1编译语言优缺点 在学python之前我们要先了解下一些基本常识如果有会的可以直接... -
常用的Javascript设计模式小结
2020-11-23 11:42:33不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员, 在短跑甚至拳击方面有一些优势,在练瑜伽上就欠缺一些。 术士和暗影牧师很容易成为一个出色的辅助,而一... -
常用的Javascript设计模式(全懂,你出师了)
2013-04-28 16:37:39来源:alloyteam 博客-svenzeng 《Practical Common Lisp》的作者 ...不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员, 在短跑甚至拳击方面有一些优 -
Js常用的设计模式(1)——单例模式
2015-01-26 15:41:00Js常用的设计模式(1)——单例模式 《Practical Common Lisp》的作者 Peter Seibel曾说...不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员,...