1.简单类型转换 var a = 123 a="123" console.log(typeof a) //string
-
原始值,存储在站 stack 先进后出。first in,last out 栈是copy
var a = 123 var b = a a = 20 document.write(b) //123 -
引用值,堆内存 heap 栈内存里放地址,堆中放值 , 重新声明一个地址换了但是值不变, copy是地址
var arr = [1] var arr1 = arr arr.push(2) document.write(arr1) //1,2 -
特例子 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 -
先计算在赋值
var num =100 var b = 20 num = b+1 console.log(num) //21 -
a++与++a 计算
var num =100 var b = ++num - 1 + num++ console.log(b + "" + num ) //201 100 -
交换值
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 -
&&运算符
var a = 1&&2; console.log(a) //2 -
&& 运算符
var a = 0 && 2 +2 ; console.log( a ) // 0 -
&& 运算符
var a = 1 && false && 1; console.log( a ) // false -
& 运算符
var a = 1 & 2; console.log( a ) // 0 -
& 运算符
var a = 1 && 3; console.log( a ) // 0 -
|| 运算符
var a = 4|| 3 ; console.log( a ) //4 -
|| 运算符
var a = 0 || 3 ; console.log( a ) //3 -
|| 运算符
var a = 0 || false ; console.log( a ) // false 输出最后一个 -
函数的计算题
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>