❶ js全局變數賦值
function test(){
s = 「sh」;//全局變數
var c = 1;//局部的整形變數
}
這樣即可為一個全局變數賦值。
省略了var操作符,就創建了一個全局變數,如上形式就可以直接進行創建並且賦值。
在js中有var操作符的變數是定義在該變數范圍內的局部變數,局部變數在出了作用域的范圍會就會被立即銷毀。
❷ js 連續賦值
以下代碼輸出什麼? 為什麼?
var a = {n:1};
var b = a;
a = {n:2};
a.x = a ;
console.log(a.x);
console.log(b.x);
var a = {n: 1}
var b = a;
a.x = a = {n: 2};
console.log(a.x);
console.log(b.x)
第一個問題:
a.x ---> {n:2,x:a};
b.x ---> undefined;
解答:a的值很清晰了,a第二次賦值以後變成了{n:2},隨後添加了x屬性指向自身。而對於b,在a第二次賦值以後,由於js中給變數賦值為object類型時,變數中存儲的是對這個object的引用。
此時,a指向{n:2} ,而b指向了{n:1} ,a和b指向不同的對象,因此,在a上添加屬性對於b無影響,b.x自然就是undefined。
第二個問題:
解答:第三句里的主要難點在js運算符的優先順序,訪問屬性、調用方法運算符"."的優先順序高於賦值運算符。因此執行順序是
給a添加屬性x,此時a,b都是 { n:1,x:undefined },a.x 運算後的結果即為這個object(可以說也就是b)的x屬性值。
把{n:2}賦值給a,此時a是 {n:2},是一個新的對象。 b是{ n:1,x:undefined }。
由於( . 運算符最先計算)一開始js已經先計算了a.x,便已經解析了這個a.x是對象A的x,所以在同一條公式的情況下再回來給a.x賦值,也不會說重新解析這個a.x為對象B的x。
所以 a.x=a 應理解為對象A的屬性x指向了對象B:
(這個時候a.x 已經運算完了,不會再與a產生任何關系,a.x依舊代表那個n為1對象的x屬性值,和a已經沒關系了。)
把{n:2}賦值給a.x 也就是 { n:1,x:undefined }這個對象的x屬性,這個時候b依舊指向這個object,因此此時,a是{n:2},b是{n:1,x:{n:2}}
我只能舉例說明,希望能幫助到你,望採納,謝謝。
❸ js里怎麼把值賦給頁面變數
這樣跟你說吧 你想把js中的值賦給java域中的話是不可能實現,在一個頁面中,你要搞得版話可權以用一個Servlet進行處理,處理之後你就可以在頁面中get這個值,或者你可以搞成一個jsp,你可以用form表單設置hidden域然後提交,還有的話如果你要的是給一個input中的value設置值得話你可以用document.getElementById("putId").value=i直接給這個id賦值,並不能做成全局的變數,還有你可以考慮jQuery的form.js
❹ js如何給一個對象多加一個屬性並賦值
1、js創建抄一個對象或者在原有對象上添加一個已知屬性,並給這個屬性賦值,寫法如下:
let obj = {'a1':'a1'};obj['a2'] = 'a2';console.log(obj);//輸出{'a1':'a1','a2':'a2'};
2、添加一個變數屬性,並賦值變數,寫法如下:
function add(name,value){let obj = {"a1":"a1"};obj[name] = value;//返回參數console.log(obj);//{"a1":"a1","b1":"b1"}}add("b1","b1");
❺ js變數傳遞如何表示或js變數如何賦值給其他變數
傳值有兩種,一來種是值傳遞,自另一種是引用傳遞,
值傳遞就是想數字,字元串,布爾值之類的,如果改變了就是改變了自己;
引用傳遞就是設置一個引用類型如object,數組,傳值後更改了這類參數,在原先的方法中應該也會改變,比如,a是一個引用類型,復制給b,b改變了值或屬性,a也就變了,
賦值其實就是遵循一個原則等號右側賦值給左側
如何賦值給其他變數,值類型直接賦值就行,引用類型需要克隆一下,就是在創建一個副本吧!!!!
❻ JS數組變數賦值
//不確定數組,arr
for(vari=0;i<arr.length;i++){
xAxis.categories.push(arr[i]);
}
❼ JS如何給多個元素統一賦值
for(x in json){
$("#cstBaseInfo_"+x).html(json[x]);
}
❽ JS中如何把String[] 循環賦值給一個變數
<script language="javascript">
var a = new Array();//初始化數組
a[0]="aaaa";//數組賦值
a[1]="bbbb";
a[2]="cccc";
str="";
for(i=0;i<a.length;i++)//開始循環
{
專str+=a[i];//循環賦值
}
alert(str);//輸出屬結果
</script>
❾ JS 函數給全局變數賦值
你的意思是把局部變數的值賦給全局變數吧
我舉個例子吧:
<input type=「button」 value=「1」 onclick="MicroNet_OnSubmit('bbb')" >
<input type=」button「 value=」2「 onclick="MicroNet_OnSubmit1()" >
<script>
var liuyin="aaa";
function MicroNet_OnSubmit(flvFile) {
liuyin= flvFile;
}
function MicroNet_OnSubmit1() {
alert(liuyin);
}
</script>
上面的代碼放在htm文件里,先點擊按鈕1再點擊按鈕2,看看值有沒有變
❿ javascript變數再賦值
樓上兩位不要誤人子弟,什麼叫不能再定義了?
作用域問題!看下面的注釋吧
-----------------------
<script>
var i=1; //全局變數
function dd(i)
{
{
alert(i); //這里彈出的是全局變數i,所以是1
var i=0; //這里又定義了一個局部變數i,等於0,且每次執行都重新定義這個局部變數,並等於0;這個i的作用域范圍就是在dd()函數體內,每次dd()函數執行完自動銷毀
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>
--------------------
要i等於0,在你的基礎上有兩個辦法:
1:修改全局變數i
<script>
var i=1
function dd(i)
{
{
alert(i)
window.i=0 //這里修改的是第一行定義的那個i,第一次彈出1,以後彈出0
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>
2:
<script>
var i=1
function dd(i)
{
{
var i=0
alert(i) //兩句對調,但這個i就成了dd()函數體內的局部變數,所以一直彈出0
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>