`
zhouyrt
  • 浏览: 1172358 次
  • 性别: 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”。

 

分享到:
评论

相关推荐

    神奇的perl两本perl入门教材合集

    3. **Perl语法基础**:包括变量、常量、数据类型(如标量、数组、哈希)的使用,以及字符串操作和正则表达式。 4. **流程控制**:讲解条件语句(if-else)、循环(while、for)以及分支结构(switch-case)等控制...

    Intermediate PERL

    2. **引用和作用域**:引用是Perl中指向变量或数据结构的一种特殊类型。作用域则是指变量的有效范围。掌握引用和作用域对于理解和编写复杂程序至关重要。 3. **操作复杂数据结构**:Perl支持多种数据结构,如数组、...

    Perl语言入门.pdf

    #### 二、基础语法与数据类型 **部分内容解析:** 1. **标量数据:** - **数字**:包括整数和浮点数,Perl内部会自动转换不同类型的数字表示形式。 - **字符串**:支持单引号和双引号,双引号字符串中可以进行...

    perl高效编程

    #### 一、Perl简介与特性 Perl是一种高级的、通用的、解释型的脚本语言,被广泛应用于多种任务场景,包括但不限于系统管理、Web开发、网络编程、GUI开发等。它以其强大的文本处理能力、灵活的语法结构以及丰富的...

    用 perl 实现文件上传

    在IT领域,特别是Web开发中,文件上传是一个常见的需求,涉及到客户端与服务器之间的数据交互。在给定的文件信息中,我们看到了一个基于Perl语言实现的文件上传解决方案,包括前端HTML表单设计和后端Perl脚本处理。...

    p5-Chart-Plotly:使用JavaScript库Plotly.js用perl数据生成htmljavascript图表

    “p5-Chart-Plotly:使用JavaScript库Plotly.js用perl数据生成htmljavascript图表”这个标题揭示了我们正在讨论一个Perl模块,名为p5-Chart-Plotly,它允许用户利用Perl生成的数据来创建HTML和JavaScript交互式图表...

    Atom-atom-perl6-editor-tools,一组有用的Perl6编辑器工具。有助于Azawawi/Atom.zip

    1. **语法高亮**:对Perl 6的语法进行颜色标注,使代码更易读,便于识别不同类型的语句和数据结构。 2. **自动完成**:提供智能代码补全功能,帮助用户快速输入常见的Perl 6函数、模块和变量,减少键入错误。 3. *...

    Perl语言编程

    即可开始Perl的基础学习,包括变量类型、控制结构、函数定义等内容,随后逐渐深入到文本处理、文件操作、网络编程等领域,实践是检验学习成果的最佳方式,通过编写实际项目,如自动化脚本、数据处理程序,可以加深对...

    生产规模的数据中心分析器CC Go Rust Python Java NodeJS PHP Ruby Perl.zip

    6. **Node.js**:Node.js基于JavaScript,适用于构建高效的I/O密集型应用。其非阻塞I/O模型和事件驱动的架构使得它在实时数据分析和流处理中表现出色。 7. **PHP**:虽然PHP主要应用于Web开发,但其也有许多数据...

    perl5-Chart-GGPlot:Perl中的ggplot端口

    7. **交互式图表**:虽然Chart::GGPlot本身不直接支持交互式图表,但可以结合其他Perl模块(如GD::Graph或JavaScript库)实现交互功能,如悬停显示数据点信息、缩放和拖动等。 通过Chart::GGPlot,Perl5开发者能够...

    perl install document

    Perl与Apache和PHP的集成使你能够在Windows平台上轻松创建和维护动态网站,同时利用MySQL数据库存储和检索数据。 总的来说,Perl的安装过程虽然需要一些技术背景,但通过WampDeveloper Pro这样的工具,可以简化这一...

    perl-net-etcd:Net :: Etcd etcd v3 gRPC网关Perl客户端

    4. **gRPC网关**:在etcd v3中,gRPC网关允许不支持gRPC的客户端(如JavaScript在浏览器环境)通过RESTful API与etcd服务通信。Perl-net-etcd就是利用gRPC网关来实现与etcd的交互。 5. **Perl5**:Perl5是Perl语言...

    perl:Testafy 的 perl API 包装器

    2. **JSON::XS**: 这是一个用于处理JSON(JavaScript Object Notation)数据的Perl模块,非常快速且高效。它能够将Perl的数据结构转换为JSON格式,以及将接收到的JSON数据解析回Perl。在与API交互时,JSON通常作为...

    JavaScript语言

    1. 动态类型:它允许变量在运行时自动转换数据类型,无需提前声明。 2. 解释性:JavaScript代码不需要预编译,而是由浏览器中的JavaScript引擎实时解释执行。 3. 与操作系统无关:JavaScript依赖于浏览器运行,而...

Global site tag (gtag.js) - Google Analytics