我记得几个月前读过一篇关于HTML的简写版本或扩展的文章.它的目的是通过删除结束标记使HTML代码更加简洁,并且它可能允许某种循环.我现在想用它,但我似乎无法记住它的名字.
在线搜索,我找到了Haml,但是Haml语法看起来不像我在文章中记得的那个例子.该文章的语法使用了直角括号,它是缩进的替代品.
这是什么语言?
我在函数中有这个代码,并希望缩短它 - 它将相同的样式应用于数组中的每个项目.
document.getElementById(divsArray[0]).style.visibility = 'hidden';
document.getElementById(divsArray[1]).style.visibility = 'hidden';
document.getElementById(divsArray[2]).style.visibility = 'hidden';
document.getElementById(divsArray[3]).style.visibility = 'hidden';
Run Code Online (Sandbox Code Playgroud)
没有回答日期工作(因为我循环通过代码??)
通过仅将先前显示的幻灯片可见性设置为隐藏来解决此问题
x = i;
i = i+1;
document.getElementById(divsArray[x]).style.visibility = 'hidden';
Run Code Online (Sandbox Code Playgroud) 在PHP中编写shorthands的方法很简单.
!isset( $search_order ) && $search_order = 'ASC';
Run Code Online (Sandbox Code Playgroud)
!isset( $search_order ) ? $search_order = 'ASC' : $search_order = NULL;
Run Code Online (Sandbox Code Playgroud)
!isset( $_POST['unique_id'] ) && preg_match( '/^[a-zA-Z0-9]{8}$/', $_POST['unique_id'] ) ? $post_unique_id = $_POST['unique_id'] : $post_unique_id = NULL;
Run Code Online (Sandbox Code Playgroud)
但是我们如何使用上面的例子和函数返回,例如:
function filter_gender_request($data) {
preg_match('/(fe)?male/i', $data, $data);
isset($data[0]) && return $data[0]; // It doesn't work here with return
}
Run Code Online (Sandbox Code Playgroud)
同时,如果我说明以下内容,isset($data[0]) && return $data[0];那么一切都按预期工作:
if (isset($data[0]) ) {
return $data[0];
}
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?如果第一个也是最短的例子在函数之外完美无缺,那么为什么它不能用于返回呢?
是否有可能使用返回的短线?
我和一位同事一直在争论这个话题大约一个星期.我非常喜欢速记代码,使用三元等,无论我在哪里.最近,他一直在挑剔我使用双重感叹词.在经过多次测试后,我开始同意他的观点......在我的代码中使用双重感叹词可能并不明智.考虑一下:
var myvar = "Hello";
return (!!myvar ? "Var is set" : "Var is not set");
Run Code Online (Sandbox Code Playgroud)
上面的示例按预期工作.但是,如果我们检查可能返回undefined的变量,我们会收到错误,尤其是在IE7中.但是,如果我们在控制台中运行它,我们会得到预期的结果:
if(randomvar) alert('Works');
Run Code Online (Sandbox Code Playgroud)
使用此方法,如果变量未定义,则无提示失败.这让我质疑完全使用双重感叹词.是否存在实际上使该运营商受益的情况?
我试图为border-radius编写一个mixin,而不是仅当输出由变量设置的值> = 0.我将变量中的基值设置为3px,所以如果我输入-1或者例如, border-radius mixin不会在最终样式表中创建任何属性.如果我想为每个角落都有相同的价值,我可以让它工作.但是,如果我想使用速记即3px 3px 0 0,我无法锻炼如何使其工作.我认为这是一个问题,3px被变量和0改变在两种情况下.我的代码目前是
.border-radius(@r) when not (@r = no), (@r = 0) {
-webkit-border-radius: @r;
-moz-border-radius: @r;
border-radius: @r;
}
.border-radius(@r) when (@r = no), (@r = 0) {}
@baseBorderRadius: 3px;
.class1 { .border-radius(@baseBorderRadius); }
// This outputs fine: 3px 3px 3px 3px
.class2 { .border-radius(@baseBorderRadius @baseBorderRadius 0 0); }
// This outputs fine 3px 3px 0 0
@baseBorderRadius: no; // If I change the variable to try and disable/not run the mixin
.class1 { …Run Code Online (Sandbox Code Playgroud) 这是
border-radius:10px 10px 0 0;
Run Code Online (Sandbox Code Playgroud)
一个简短的版本,适用于所有识别它的浏览器:
border-top-left-radius:10px; border-top-right-radius:10px;
Run Code Online (Sandbox Code Playgroud) 在Javascript中,知道我可以设置一个数组,以便键是自动编号(从0开始)分配的数组:
var d_names = new Array("Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday", "Saturday");
// Key for Sunday is '0'
Run Code Online (Sandbox Code Playgroud)
如果我想分配密钥,我可以这样做:
var d_names={};
d_names[5]="Sunday";
d_names[6]="Monday";
d_names[7]="Tuesday";
d_names[8]="Wednesday";
d_names[9]="Thursday";
d_names[10]="Friday";
d_names[11]="Saturday";
// Key for Sunday is '5'
Run Code Online (Sandbox Code Playgroud)
但有没有像PHP中那样分配键的简写方法?
var d_names = new Array(5=>"Sunday", 6=>"Monday", 7=>"Tuesday", 8=>"Wednesday",
9=>"Thursday", 10=>"Friday", 11=>"Saturday");
// Doesn't work
Run Code Online (Sandbox Code Playgroud) 有没有办法让SASS或Compass给你一个缩短的十六进制颜色?例如,如果我输入#444它会#444444在输出文件中提供给我,这对我来说不是真正的优化帮助.
所以我在google上找到了这个SHORTHAND PHP方法:
if(isset($a))
{
$a = TRUE;
}
else
{
$a = FALSE;
}
Run Code Online (Sandbox Code Playgroud)
可以在单行语句中转换为:
$a = isset($a) ? TRUE : FALSE;
哪个工作正常,我有一个脚本,我无法应用SHORT HAND方法.
PHP:
<?php
$letters = ['1' => 'A', '2' => 'B', '3' => 'C'];
$data['LETTER'] = "";
foreach($letters as $id => $letter)
{
$data['LETTER'] .= "<option value=$id>".$letter."</option>";
}
$html = file_get_contents('test.html');
echo $html = str_replace(array_keys($data),array_values($data),$html);
?>
Run Code Online (Sandbox Code Playgroud)
我已经完全使用了这个SHORTHAND METHOD,它根本不起作用
$data['LETTER'] = foreach($letters as $id => $letter) ? "<option value=$id>".$letter."</option>" : "";
是否有可能缩短上面的脚本?
我有一个变量,如果该变量是一个对象,我想在该对象上调用一个方法,否则我什么都不做。
我想知道是否有任何理由为什么我不应该这样做。
var foo = null;
////////////////////////////////////////////////
// some code that could change foo to a object
////////////////////////////////////////////////
foo && foo.bar();
Run Code Online (Sandbox Code Playgroud)