小编gul*_*lty的帖子

为什么传递给函数时没有解释布尔值false参数?

我做了一些研究,但我还没有找到令人满意的答案.我有一个javascript项目文件和一个库,其中一些函数定义如下:

//Library.js 
FElib = {

        initLib: function(param1, param2){
            var init = param1 || true;
            console.log(init);
        }
}
Run Code Online (Sandbox Code Playgroud)

现在在我的project.js文件中,我调用该函数并将false作为参数传递

FElib.initLib(false, 'test');
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果我在变量声明之前记录它,param1会给我'false'.之后它使用默认的'true'.它似乎是解释错误的未定义我认为它只检查undefined ..

为什么这样的行为?

当我使用字符串时,它完全正常工作.使用0或1作为参数也不起作用,并且它使用默认变量声明.

作为一种解决方法,我将变量声明为一个对象,它再次正常工作:

//Library.js
FElib = {

        initLib: function(options){
            var defaults = {
                param1:      true,
                param2:      'string',
            };
            var options = $.extend({}, defaults, options);
        }
}
Run Code Online (Sandbox Code Playgroud)

现在调用函数即使使用布尔参数也能正常工作:

FElib.initLib({'param1':false, 'param2':'string123'});
Run Code Online (Sandbox Code Playgroud)

第二种方法似乎只有一点开销,只考虑一个布尔变量作为参数.

任何人都可以解释这种行为吗?

javascript jquery

3
推荐指数
1
解决办法
6466
查看次数

PHP数据库部署git/capistrano

我正在为一家使用PHP的公司工作.正在使用不同的CMS系统,如Wordpress或Magento.我们正在使用拥有自己的存储库服务器的git,我们必须将不同的客户部署到不同的服务器.

我已经使用capistrano设置了一个部署脚本,但是数据库同步非常棘手.

想象一下,实时数据库包含用户数据,我必须在网站启动后创建一些新功能,并且数据库中已经有大量的SQL数据.我个人使用虚拟数据库,因为我不需要任何客户信息.

你是如何让PHP极客们部署你的数据库的呢?我不想更改内容,只迁移新表或修改过的表.我正在寻找一个完整的部署解决方案.如果需要的话,除了卡皮斯特拉诺,我也会开放其他选项.特别是对于Magento,我有严重的问题要保持我的数据库同步..

任何帮助表示赞赏.

php database git deployment capistrano

2
推荐指数
1
解决办法
1465
查看次数

标签 统计

capistrano ×1

database ×1

deployment ×1

git ×1

javascript ×1

jquery ×1

php ×1