使用的重要性!在这段代码中
var testValue;
!function test(){testValue = 3; }();
console.log(testValue);
答案 0 :(得分:3)
!
指示解释器将后面的内容解析为表达式,而不是将其解析为函数声明。函数声明不能在同一行上调用,因此,如果没有!
,将抛出SyntaxError
:
var testValue;
function test() { testValue = 3; }();
console.log(testValue);
只有函数 expressions 可以立即被调用。不过,为了表示一个函数表达式,在函数周围使用括号而不是!
可能会更清楚,并且如果函数名称为test
,那么命名函数var testValue;
(() => {
testValue = 3;
})();
console.log(testValue);
并没有太多意义。没在任何地方使用过,例如:
public class RoomAdapter extends RecyclerView.Adapter<RoomAdapter.RoomViewHolder> {
private List <RoomPojo> word;
public RoomAdapter(List <RoomPojo> word1){
this.word = word1;
}
@NonNull
@Override
public RoomViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View layoutInflater = LayoutInflater.from(parent.getContext()).inflate(R.layout.word_item,parent,false);
return new RoomViewHolder(layoutInflater);
}
@Override
public void onBindViewHolder(@NonNull RoomViewHolder holder, int position) {
holder.wordTextView.setText(word.get(position).getWord());
}
@Override
public int getItemCount() {
return word.size();
}
public class RoomViewHolder extends RecyclerView.ViewHolder{
private TextView wordTextView;
public RoomViewHolder(View itemView) {
super(itemView);
wordTextView = itemView.findViewById(R.id.display_word);
}
}
}
答案 1 :(得分:0)
函数不是自动对象。您应该在方括号内定义它或将其分配给变量。如果使用!用于功能定义。它的意思是 !(function(){console.log(“ hi”);}) 现在,您可以插入()来运行该功能。