问题标签 [loose-typing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2955 浏览

javascript - 松散打字的优点是什么?

JavaScript 被称为是一种“松散类型”的语言。这是因为运行时允许对不同类型的操作数执行操作(通过强制):

来自一个主要是静态类型、强类型的背景,我很难推断这种方法的好处。当然,它可以产生一些非常简洁的语法,但在试图追踪错误时,它似乎也可能导致一场噩梦。那么,除了简洁之外,松散类型和隐式类型转换还有哪些好处呢?

0 投票
4 回答
4879 浏览

php - 将标量值(从复选框)转换为布尔值

根据 HTML 表单的提交机制,任何复选框元素值都可能被视为“on”、“off”、1、0、“true”、“false”。对于这个问题,还将提交一个未经检查的输入字段(因为这就是我想要的),它可能显示为 0 或 no 或 false。

此处的目的是将逻辑上表示布尔值的标量值转换为布尔变量。如:

  • “是” => 真的
  • “不” => 假
  • “假” => 假
  • 0 => 假
  • 1 => 真

Laravel 框架中是否有一个助手可以将提交的 FormData 复选框(或普通表单)“转换”为布尔值?

我可以自己动手,但在这里问值得一试。

这是我会使用的:

这些是我想介绍的最常见的情况:


这个问题不是“如何将字符串转换为布尔值”的重复,因为这不是一个通用问题。

我在询问将 HTML 表单或复选框元素转换为布尔值的具体过程。问题/问题的一个重要部分是识别这些复选框在通过各种(通用)方法提交并由 PHP 解析时生成的通用值。回想起来,这没有多大意义,因为该值可以是 100% 任意的,并且可以通过 input 元素的 value= 属性设置。


根据这篇文章,规范方式将类似于以下内容并返回;

  • 真为:“1”、“真”、“开”和“是”。
  • 假:“0”、“假”、“关”、“否”和“”
  • 否则为空

资源:

0 投票
1 回答
42 浏览

loose-typing - 松散类型语言如何知道如何处理不同的数据类型?

昨天我在做一个简单的任务,只需要对少数下拉菜单中的值求和,然后通过 Javascript 在文本框中显示。出乎意料的是,它只是在构建一个字符串,所以它没有给我值 4,而是给了我“1111”。我明白发生了什么;但我不明白怎么做。

对于像 Javascript 或 PHP 这样的松散类型语言,计算机如何“知道”将某物视为什么类型?如果我只是将所有内容都输入为 a var,它如何区分字符串与 int 和对象?

0 投票
1 回答
280 浏览

php - 在使用松散类型语言时应该使用强类型编码概念吗?

例如,在 PHP 或其他松散类型的语言中,我可以有一些这样的代码:

因为我可以用 PHP 和类似的语言做到这一点,这是否意味着我应该这样做?

另一种方法是强迫自己以类似的方式编写代码,例如,在 C++ 中,我将重新设计代码或创建数据结构以保持其类型。但我应该这样做吗?

0 投票
2 回答
65 浏览

javascript - 在 JavaScript 中,为什么 +[1.5] 被认为是数字?

我一直在做 JavaScript 很长一段时间,但只是注意到一些我以前从未见过的东西。考虑:

为什么会这样?这是将数组解释为数字的特殊规则还是规范炼金术的意外?

另请注意:

当然,这对我来说是有道理的,但我原以为这+[1]也是 NaN,因为它不是一个数字。还是以某种方式归类为数字?

然后是这些情况,这让我相信我们正在穿越一个类型强制虫洞(数组 ==> 字符串,字符串 ==> 数字):

这是故意的吗?

0 投票
3 回答
532 浏览

php - PHP 8.0 改变了松散比较的工作方式

让我们有一个简单的 PHP 脚本

根据官方文档(https://www.php.net/manual/en/types.comparisons.php),这应该评估为true

但是 对于 PHP <=7.4 确实如此,但对于 PHP 8.0 则没有

在当前版本的 PHP 8 (8.0.0 - 8.0.2) 中,它评估为false.

相同的脚本在不同的 PHP docker 镜像中运行

此功能是否有任何未记录的更改,或者这是一个错误?还是我错过了什么?

谢谢

0 投票
1 回答
19 浏览

php - 当回调返回非数字字符串时,array_uintersect_assoc() 出现意外结果

我正在调用array_uintersect_assoc()一个回调函数strpbrk()来演示如何根据类型评估不同的返回值。

给定一个关联的干草堆数组,例如:

还有一个关联的针阵列,例如:

代码:

输出:

因为返回的字符串值是真实的ab为什么没有键的元素seveneight包含在结果中?

未专门解决此问题的相关array_uintersect_assoc()页面: