webフロントペンの問題——JS
1.what is the value of foo?
var foo= 10+'20'; //'1020
2.How would you make this work?
add(2,5)//7
add(2)(5) //7
一つ目は説明する必要がないです.主に二つ目です. function add(x){
var sum=x;
var subFun=function(y){
sum+=y;
return subFun;/ここでsubFunに戻るのは、add(2)(5)(3)…
)
return subFun; //add(2)を実行して2をsumに格納し、subFun方法に戻って(5)のために実行する.
)
3.
What value is returned from the follwing statement?
'i'm a lasagna hog'.split(").reverse().jin(");
//注:.スプリット(")にはスペースがありません. 空の文字列(")を使っている場合 separatorでは、stingObjectの各文字(スペースを含む)の間が分割されます.結果は「goh angasal a m'i」です.
'i'm a lasagna hog'.split(").reverse().jin(")//.結果は「hog lasagna i'm」です.
4.var a=[]とvar a=new Aray()の性能の違い.(実は違いがない) クリックしてリンクを開く
5.what is the outcome of the tow alerts below?
var foo=「ハロー」
(function(){
バー =「ワールド」
alert(foo+bar)//Hello World
)()
alert(foo+bar)//エラーbar undefined
6.What is the value of
var bar=foo
foo.x=foo={n:2}/*.
*個人のまとめこの問題は主に3つのポイントを試験しました.1つは引用賦値、2つはjs計算子の優先度、3つは割当式の結合性です.
*var foo={n:1}var bar=fooこの2行の結果はオブジェクトのfooとbarが同じオブジェクトのn:1の住所に保存されています.肝心なのは3行目です.JS演算子の優先度により、オブジェクトの属性アクセスが表示されます.
*符''はこの行の優先度が一番高いので、foo.xが最初に計算され、このオブジェクトのX属性に対する参照が保存されます.JSの値付け式は右結合なので、3行目は相当です.
*foo.x=(foo={n:2}、つまりfoo={n:2}という赋値を先に行っていますので、このときのfooは{n:2}というオブジェクトを指しています.foo.x=fooを実行すると、{n:1}というオブジェクトに対するX属性の割り当て値に相当します.
*は{n:2}で、全体の過程でbarが指す{n:1}というオブジェクトなので、barは最終的に{n:1,X:{n:2}となり、fooは{n:2}となります.
*/
7.What dose the follwing code print?
1️⃣
consolone.log('one')
setTimeout(function()
{
consolone.log('two')
}0);
consolone.log('three')//one three two
2️⃣
function foo(){
consolone.log('first')
setTimeout(function(){
consolie.log('second')
}5);
)
for(var i=0;i<1000;i+){
foo()
)
//結果は、すべての印刷firstの後に印刷されるsecondです.
//実はJsのスレッドです.
var foo= 10+'20'; //'1020
2.How would you make this work?
add(2,5)//7
add(2)(5) //7
一つ目は説明する必要がないです.主に二つ目です. function add(x){
var sum=x;
var subFun=function(y){
sum+=y;
return subFun;/ここでsubFunに戻るのは、add(2)(5)(3)…
)
return subFun; //add(2)を実行して2をsumに格納し、subFun方法に戻って(5)のために実行する.
)
3.
What value is returned from the follwing statement?
'i'm a lasagna hog'.split(").reverse().jin(");
//注:.スプリット(")にはスペースがありません. 空の文字列(")を使っている場合 separatorでは、stingObjectの各文字(スペースを含む)の間が分割されます.結果は「goh angasal a m'i」です.
'i'm a lasagna hog'.split(").reverse().jin(")//.結果は「hog lasagna i'm」です.
4.var a=[]とvar a=new Aray()の性能の違い.(実は違いがない) クリックしてリンクを開く
5.what is the outcome of the tow alerts below?
var foo=「ハロー」
(function(){
バー =「ワールド」
alert(foo+bar)//Hello World
)()
alert(foo+bar)//エラーbar undefined
6.What is the value of
foo.x
var foo={n:1}var bar=foo
foo.x=foo={n:2}/*.
*個人のまとめこの問題は主に3つのポイントを試験しました.1つは引用賦値、2つはjs計算子の優先度、3つは割当式の結合性です.
*var foo={n:1}var bar=fooこの2行の結果はオブジェクトのfooとbarが同じオブジェクトのn:1の住所に保存されています.肝心なのは3行目です.JS演算子の優先度により、オブジェクトの属性アクセスが表示されます.
*符''はこの行の優先度が一番高いので、foo.xが最初に計算され、このオブジェクトのX属性に対する参照が保存されます.JSの値付け式は右結合なので、3行目は相当です.
*foo.x=(foo={n:2}、つまりfoo={n:2}という赋値を先に行っていますので、このときのfooは{n:2}というオブジェクトを指しています.foo.x=fooを実行すると、{n:1}というオブジェクトに対するX属性の割り当て値に相当します.
*は{n:2}で、全体の過程でbarが指す{n:1}というオブジェクトなので、barは最終的に{n:1,X:{n:2}となり、fooは{n:2}となります.
*/
7.What dose the follwing code print?
1️⃣
consolone.log('one')
setTimeout(function()
{
consolone.log('two')
}0);
consolone.log('three')//one three two
2️⃣
function foo(){
consolone.log('first')
setTimeout(function(){
consolie.log('second')
}5);
)
for(var i=0;i<1000;i+){
foo()
)
//結果は、すべての印刷firstの後に印刷されるsecondです.
//実はJsのスレッドです.