js变量的计算题

680 阅读3分钟

1.简单类型转换 var a = 123 a="123" console.log(typeof a) //string

  1. 原始值,存储在站 stack 先进后出。first in,last out 栈是copy

      var a = 123
      var b = a
       a = 20
       document.write(b)
       //123
    
  2. 引用值,堆内存 heap 栈内存里放地址,堆中放值 , 重新声明一个地址换了但是值不变, copy是地址

      var arr = [1]
      var arr1 = arr
      arr.push(2)
      document.write(arr1)
      //1,2
    
  3. 特例子 1.1先申请栈 arr 引用值存地址, 1.2堆中存值,1.3在开一个房间存放新的值

      var arr = [1,2]//1.1
       var arr1 = arr//1.2
      arr =[1,3]//1.3
      document.write(arr1)
      1,2
    
  4. 先计算在赋值

       var num =100
        var b = 20 
       num = b+1
       console.log(num)  
       //21
    
  5. a++与++a 计算

        var num =100
        var b = ++num - 1 + num++
       console.log(b + "" + num )
       //201 100
    
  6. 交换值

    1.1方法

       var a = 100;
       var b = 200;
       var c = a;
       a = b;
       b = c;
    

    1.2方法

       var a = 100;
       var b = 200;
       a = a+b;
       b = a-b
       a = a-b
    
  7. &&运算符

       var a = 1&&2;   
       console.log(a)
       //2
    
  8. && 运算符

       var a = 0 && 2 +2 ; 
       console.log( a )
       // 0
    
  9. && 运算符

     var a = 1 && false && 1;
     console.log( a )
     // false
    
  10. & 运算符

     var a = 1 & 2;
     console.log( a )
     // 0
    
  11. & 运算符

     var a = 1 && 3;
     console.log( a )
     // 0
    
  12. || 运算符

     var a = 4|| 3 ;
     console.log( a )
     //4
    
  13. || 运算符

     var a = 0 || 3 ;
     console.log( a )
     //3
    
  14. || 运算符

     var a = 0 || false ;
     console.log( a )
     // false    输出最后一个
    
  15. 函数的计算题

      1.1 	// 写一个函数,功能告知你所选定的小动物的叫声
     	<script type="text/javascript">
        	function scream(animal) {
    		switch (animal) {
    			case "dog":
    				document.write("wang!");
    				return;
    			case "cat":
    				document.write("miao");
    				return;
    		}
    	}
    	scream('dog')
        </script>
      //wang!
    
     1.2    //写一个函数,实现加法计数器 
      	<script type="text/javascript">
    	function scream() {
    		var sun = 0;
    		for (var i = 0; i < arguments.length; i++) {
    			sun += arguments[i]
    		}
    		console.log(sun)
    	}
    	scream(1, 2, 3, 4)
    </script>
    
17 //写一个函数,输入数字,逆转并输出汉字形式
     1.3  取出每一项
       
     <script type="text/javascript">
		// 输入123
		function scream() {
			var num =window.prompt("数字入符串")
			var arr1=num.charAt(0);
			console.log(arr1)//1
			var arr1=num.charAt(1);
			console.log(arr1)//2
		}
		//还可以用字符串
		function scream() {
			var num =window.prompt("数字入符串")
			var arr1=num[0];
			console.log(arr1)//1
			var arr1=num[1];
			console.log(arr1)//2
			var arr1=num.length;
			console.log(arr1)//3
		}
	</script>
    
     1.4  反转
     	<script type="text/javascript">
		// 输入123
		// 用来拼串
		var str = ""
		function scream() {
			var num = window.prompt("数字入符串")
			for (var i = num.length - 1; i >= 0; i--) {
				str += num[i];
			}
			console.log(str)
		}
	
	</script>
	
	1.5 //转换成汉字
	<script type="text/javascript">
		// 输入123
		// 用来拼串
		var str = ""
		function scream() {
			var num = window.prompt("数字入符串")
			for (var i = num.length - 1; i >= 0; i--) {
				str += transfer(num[i]);
			}
			console.log(str)
		}

		function transfer(target) {
			switch (target) {
				case "1":
					return "壹";
				case "2":
					return "贰";
				case "3":
					return "叁";
				default:
					break;
			}

		}
	   </script>
	   //在控制台输入函数,出现弹窗,直接输入,出结果
	   
1.6  //阶乘递归调用,非常的慢,一个个执行 
	 1.6.1
	 <script type="text/javascript">
		// 阶乘递归调用
		function jiecheng(n){
		 //   为了跳出阶乘
		 //0的阶乘是1
			if(n==1||n==0){
				return 1;
			}
			return n*jiecheng(n-1)
		}
	   </script>
	   1.6.2
	    //控制台输入函数+值得出结果
	    <script type="text/javascript"> 
	      function mul(n){
		   var  num =1;
		   for(var i=1;i<= n;i++){
			   num *=i
		   }
		   return num
	      }
         </script>
         
     1.7	//斐波那契数列
     <script type="text/javascript">
	 //  fb(n) = fb(n-1)+fn(n-2)
	   function fb(n){
		    if (n==1 ||n==2){
				return 1
			}
		   return fb(n-1) + fb(n-2)
	   }
	</script>
18 //函数 加减值

只要是无字符串自,按照 数字进行隐式类型转换

       <script type="text/javascript">
		 var str = false +1;
		 document.write(str)//1
		 var demo = false ==1;
		 document.write(demo)//false
		 if(typeof(a) &&-true +(+undefined)+""){
		     //"undefined" &&-1+NaN+""//"undefined"&&"NaN"   true
			 document.write("基础扎实");//基础扎实
		 }
		 if(11+"11"*2 ==33){
		     //11+22=33 33==33 true
			 document.write("基础扎实");//基础扎实
		 }
		 !!" "+!!""-!!false||document.write("你觉得能打印,你就是猪);// 短路
		 //true+false-false
		 //1+0-0
	</script>