js笔记2019.8.9

一.变量作用域
1.函数内部没有变量,则逐层向外访问;
在这里插入图片描述
2.在函数体外的变量是全局变量(无论有没有var声明);
3.在函数体内有var声明的变量是局部变量,没有var声明的变量是全局变量;
4.变量声明只声明一次(对象的属性是唯一的),在用时是已经声明好了的变量;

二.算数表达式
1.+:数字相加话字符串拼接:
(1)如果其中一个是操作对象,则js会自动把它转换成原始类型的值(优先调用valueOf()方法,在调用toString()方法;(数组、object对象、函数)调用valueOf(),结果为本身;);
(2)如果其中一个操作符是字符串,另一个也会转成字符串,进行拼接;
(3)如果两个操作数是数字,直接加法操作;

2.一元操作符
(1)++,-- 前置型先做加一或减一运算再做其他运算;后置相反;

// var a=5,b=6;//b---7
// console.log(--a);//a=a-1
// 
// console.log(a);//4---5---4
// 
// 
// console.log(  (a++)-(b++)+(a--) )//3
// console.log(a);

3.减乘除取余 结果一定是number 类型

// str=null-5-undefined
// console.log(str)//NaN
// 
// 
// console.log( 0.23/0 );//Infinity
// console.log(  0*Infinity );//NaN
// 
// var num=100;
// console.log(num%5)


// var str;
// console.log(  str=null+5+undefined+NaN+"");//"NaN" 
// 
// if(str){
// 	console.log("这是个真值")
// }

三.(数组、object对象、函数)调用valueOf(),结果为本身;

四.new Date当前系统时间在这里插入图片描述
五.函数定义表达式必须是用function 开头的才能有函数提升

console.log(fn);//undefined
// console.log(fn())
var fn=function(){
	console.log(123);
}
console.log(fn);//函数体
console.log(  fn()  )

var arr=new Array(1);
console.log(arr.length);

六. 如果其中一个操作数是引用类型,优先调用valueOf求值后可以进行加法运算,则加起来;不行再调用toString,再进行字符串拼接

var num=function(){};//[],{name:"fiag"}
//(数组/Object对象/函数)调用valueOf(),结果是他本身
console.log(num.valueOf()==num)//true
console.log(  num+100  );//function(){}100


var myarr=new Boolean(true);
console.log(myarr.valueOf());//true
console.log(myarr+100);//101

七.逻辑运算符
1.逻辑非:结果一定是布尔类型

var vari=!NaN;
console.log(vari);//true

2.逻辑与&&:短路操作,发现false 类型的值就停止;操作结果可以是任意类型的值

console.log( undefined&& 123 );//undefined
			
console.log( {}&&123 );//123

console.log( "dgkahd"&&"" );//"" 

console.log( null&&document.write("优秀") );//null

3.逻辑或|| :短路操作,发现true 类型的值就停止;操作结果可以是任意类型的值

console.log( "0"&&false||alert(1) )
			
console.log(0||undefined);

八.练习题

var str=false+1;
document.write(str);  // “1”
var demo = false ==1;
document.write(demo);  //false
if(typeof(a)&&-true + (+undefined)+""){
	document.write("基础扎实");    //打印
}
if(11+"11"*2==33){
	document.write("基础扎实")    //打印
}
!!" "+!!""-!!false||document.write("你觉得能打印,你就需要努力了!");

		</script>
	</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值