js的对像及数据及数据类型的转换
var cat={'color':'blank', 'name':'加菲猫', 'bland':'波斯猫', 'eat':function(){ console.log('我能吃肉'); }, 'drunk': function(){ console.log('我能喝水'); } } console.log(cat); console.log(cat.color); console.log('我是'+this.cat.name+'能吃肉'); cat.eat(); var c='name'; console.log(cat[c]);
调用对象时 有
console.log(dog.name)
console.log(dog.[name])
调用 对象方法时有
dog.eat()
当var c='name'时
可以在console.log(dog.[name])中的中括号里加变量名称
2.数字的类型
parseint() 转化为整型
parsefloat() 转化为浮点型
tofixed 保留小数点位数
3.严格模式
ues strict 严格模式
比如
之前我们不用var 直接变量等于一个值 可以正常运行
但是在严格模式下不能够运行
4.栈与堆
栈内存 时 先进后出
堆内存时 分叉 给进去的数据生成一个地址
在把地址给到栈里面
5.数据类型的转换
1) 字符串的转换
自动转换
console.log('one'+1)数字 console.log('one'+null);空 console.log('one'+undefined);未定义 console.log('one'+true);布尔值 console.log('one'+false);onefalse console.log('one'+{});对象
强制转换
强制转换: String(),object.toString()
console.log(String(1)); console.log(object.toString());
2)数字类型的转换
自动转换
console.log("1"+1);
console.log(null+1);
console.log(true+1);
强制转换
console.log(Nummber("10"));
强制转换 Number() 按照自动转换规则转换 parseInt(string) 、parseFloat(string) i isNaN() 函数用于检查其参数是否是非数字值
注意:parseInt还可以接受第二个参数(2到36之间),表示呗解析的值的进制,返回该值对应的10进制数。parseInt的第二个参数为10,即默认是十进制转十进制
3)布尔类型的转换
自动转换
强制转换
Boolean()
!!
if(0 || "" || '' || NaN || undefined || null){ alert('true') }else{ alert('false') } !!123.11 // true Boolean('abc') // true console.log(Boolean([])); // true
console.log(Boolean([])); // true console.log([] == false); // true; ==两边的数据类型不一致,需要转为数字进行比较;[]=>字符串''=>数字0 console.log(![] == false); // true ==的优先级比较低,肯定是先算左边 ![] 然后与后面进行比较,[]转为布尔值为true 取反 false false==false console.log('0' == false); // true
6面试题
面试题:把16进制转为rgb格式; // // #ff0000 // console.log(parseInt('ff',16)); // console.log(parseInt('00',16)); // console.log(parseInt('00',16)); // console.log('rgb:'+parseInt('ff',16),+parseInt('00',16),+parseInt('00',16))
7.运算符
运算符算术运算符(+,-, *,/,%【重要】,++【重要】,--)算术运算符(+,-, *,/,%【重要】,++【重要】,--)
“+”算数加和字符串想接
i++ 先赋值,再加1;
++i 先加1,再赋值
alert(typeof(+'5')) // number +"5" 表示0+5
比较运算符(>,<,>=,<=,,=,!=不等于,!==不全等于)【了解】
!=不等于 值不等于 数据类型可以相同
!==不完全等于 值不等于 数据类型不相同
赋值运算符(=【掌握】,+=【掌握】,-=, *=,/=,%=)赋值运算符(=【掌握】,+=【掌握】,-=, *=,/=,%=)
= 表示赋值 += 表示 加后面的数据 赋给前面的变量 var b; b+= console.log(b); var i=10; i+=1 // i=i+1 效果一样 i++
逻辑运算符(!,&&,||)【两边均为表达式】【重要】
逻辑运算符用于测定变量或值之间的逻辑 || 存在断点问题,第一个式子成立,不在执行第二个式子;如果第一个式子不成立,执行第二个登式(真假为真,假假为假,真真为真) && 式子两边同时成立,执行的是if(true),只要有一个不成立。或两个都不成立执行false
||运算方法[真前假后]:
只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。
只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。
// 如果你必须给一个变量赋默认值,可以简单的这样写 var a; console.log(a) // undefined a = a||'default value'; console.log(a) // default value a = a||'new value'; console.log(a) // new value // 在函数中传參使用,如果传參就使用传递过来的参数,没有传參就使用默认值 function show(10){ var shownum = num || 20; console.log(shownum); } show(10);
&&运算方法[假前真后]:
只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;
只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;
// console.log(5>1&&5); //前面要是为真 后面不关真假都输出后面 // console.log(0&&9); //前面为假 不看后面 直接输出前面的 断点
if(0 && 5){
console.log('真');
}else{
console.log('假');
}
console.log(10&&5);
console.log(0&&5);
var a=1;
console.log(a>5 && a++);
console.log(a<5 && a++);
console.log(a<5 && --a);
var a=10;
if(a<20||a++){
console.log('真',a);
}else{
console.log('假',a);
}
条件运算符【三元运算符/三目运算符】【重要】
条件表达式?结果1:结果2 如果条件表达式结果为true则返回结果1 如果条件表达式结果为false则返回结果2 //三元运算符 // console.log(2>3?"true":"false");
本文来自博客园,作者:刘先生的爱心博客,转载请注明原文链接:https://www.cnblogs.com/liu521125/p/17793054.html
一点一滴记录着学习html5 css3 和js 的时光