`
zhouyrt
  • 浏览: 1127149 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Perl与JS的比较(基本数据类型)

    博客分类:
  • Perl
 
阅读更多

 

一、数字

和JS一样,用双精度浮点数(double-precision floating-point)表示。不同于JS的如下

1,整数直接量中可以插入下划线,看起来比较清楚,如 11222333 等同于 11_222_333

if (11222333 == 11_222_333) {
    print 'true';
} else {
    print 'false';
}

运行后将打印出true。

 

2,Perl除了支持十进制、八进制、十六进制还支持二进制,JS不支持二进制数字表示法。Perl中二进制以0b开头,如0b1110等价于十进制的14。

print 0b1110;

运行后将打印出14。

 

3,Perl支持双星运算符表示乘幂(exponentiation),如 2**3 == 8,JS不支持。

 

二、字符串

1,字符串用单引号,双引号表示。双引号里斜杠可转义。双引号里方式与JS方式很不同,可以插入变量,插入列表,数组。

2,双引号里转义符多了如下

  • \l  将下个字母转成小写
  • \L 将它后面所有的字母转成小写
  • \u 将下个字母转成大写
  • \U 将它后面所有的字母转成大写
  • \O 把它和\E之间的字符加反斜线转义
  • \E 结束\L、\U和\0开始的作用范围

3,字符串连接使用点操作符,如 'Hello, '.'world!';JS使用加号,如'Hello '+'world!'。

4,具有字符串重复操作符x(小写x),JS没有。如:'ab'x3 == 'ababab'。

 

三、没有Boolean类型,JS有。Perl用一些简单的规则判断

  1. 如果是数字,0为假,其它为真
  2. 如果是字符串,空字符串为假,其它为真。
  3. 既不是数字又不是字符串,就把它转成数字或字符串再行判断

第二点需要注意,""在Perl和JS里都为假;但"0"在Perl为真,JS里为假。

 

四、没赋值的变量值是undef, JS是undefined

判断变量是否是undef用defined函数(Perl内置),JS没有内置函数,但可以用typeof运算符 typeof a == 'undefined' 或 a === undefined。

 

五、数字比较用 ==, !=, <, >, <=, >=,字符串比较用eq, ne, le, gt, le, ge。JS不区分。

 

六、Perl和JS都具有自动类型转换,比如数字与字符串,对象与基本类型。

 

七、Perl具有列表直接量,JS具有数组直接量,但展现形式不同

1,圆括号用逗号隔开,如

(1, 2, 3, 4) # 数字列表
('a', 'b', 'c') # 字符串列表
(0..9) # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,

2,还可以使用qw简写方式,除了用圆括号Perl还允许用任意标点符号作为定界符,前后定界符也可以不同,但必须是对称。如

qw(a b c)
qw(hello world)
qw/hello world/
qw!hello world!
qw#hello world# # 此处不是注释
qw{hello world}
qw[hello world]
qw<hello world>

要注意的是qw里的元素默认都是字符串,因为qw表示的其实是“quoted word”。

 

分享到:
评论

相关推荐

    Data-Transform-ExplicitMetadata:Data-Transform-ExplicitMetadata 的只读发布历史记录

    将 Perl 数据结构转换为具有基本数据类型和显式元数据的结构。 此数据结构可以安全地进行 JSON 编码。 描述 JSON 模块只能编码可直接表示为 JSON 字符串的 Perl 数据结构:简单标量、arrayrefs 和 hashrefs。 该...

    网站前端设计资料

    js基础教程:Javascript[1] 是一种由Netscape的LiveScript发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的...

    JavaScript语言

    Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。...

    linux_simplejson-3.13.2.tar.gz

    在python中,我理解的simplejson模块就是主要用于将python数据类型转换为json类型。 json文件类型: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。...

    网络编程基础之javascript

    Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。...

    JavaScript网页设计300例

    Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。...

    JavaScript试题

    Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。...

    JavaScript权威指南

    Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。...

    基于java的企业级应用开发:JSON数据交互.ppt

    14.1.1 JSON概述 JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式。它是基于JavaScript的一个子集,使用了C、C++、C#、Java、JavaScript、Perl、Python等其他语言的约定,采用完全独立...

    JavaScript快速查询手册

    Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。...

    .NET面试题C#.NET

    c和c++是静态语言,也是弱类型语言,perl和php是动态语言,但也是弱类型语言,强类型语言在没有强制类型转换前,不允许两种不同类型的变量相互操作。java、c#和python都是强类型语言。 使用那种语言还是要按需而定。...

    redis是一个key-value存储系统 和Memcached类似,它支持存储的value类型相对更多

    这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是...

    轻轻松松学用javascript编程

    Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。...

    thrift-0.9.3.exe

    它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 等等编程语言间无缝结合的、高效的服务。...

    JavaScript中文参考手册下载

    Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。...

    Javascript函数帮助手册下载

    Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。...

    thrift-0.10.0.exe

    它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 等等编程语言间无缝结合的、高效的服务。...

    thrift-0.10.0.tar.gz

    它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 等等编程语言间无缝结合的、高效的服务。...

    js、css参考文档

    Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。...

    javascript学习

    Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。...

Global site tag (gtag.js) - Google Analytics