ECMAScript:是一套标准、核心,定义规范、语法、数据类型、基本对象、关键字…
HTML标签类型:block、inline、inline-block、table......类型可以让我们分辨不同类型的标签知道给它定义什么样式。比如block类型可以设置宽高。
Javascript中的数据类型:
/*
根据typeof来划分数据类型:
number(NaN)、string、function、boolean、object(obj、文档中的元素、[]、{}、null)、undefined(1真的没定义2虽然定义没有给值)
标准提倡数据类型分两种:
基本类型:number、string、function、boolean、null、undefined
对象类型:object
*/
1 var i = 100; 2 alert(typeof i); //number 3 4 var s = 'abc'; 5 alert(typeof s); //string 6 7 var b = true; 8 alert(typeof b); //boolean 9 // if( 12<90 ) if会自动把小括号里的值转成布尔类型 布尔值只有ture、false10 11 function fn1(){alert(1);}12 alert(typeof fn1); //function13 14 var obj = window;15 var obj = document;16 alert( typeof obj ); // object17 18 var arr = [1,2,3,4];19 alert(typeof arr); //object20 21 var json = {22 'name':'xiaowang',23 'age':524 };25 alert(typeof json); //object26 27 var n = null;28 alert(typeof n); //object29 30 var u;31 alert(typeof u); //undefined
除了空对象以外的对象类型,都可以添加自定义属性。
数据类型转换:
HTML标签类型也可以转换,比如inline转换成block。
vara= '100';
alert(a+100);//100100字符串连接
字符串转换成数字类型:
强制类型转换/显示类型转换Number();parseInt();parseFloat();
1)方法:
Number();
vara= '100'; // '000100' , '+100'
alert(Number(a));//100
vara='';
alert(Number(a));//0
vara=true;
alert(Number(a));//true1false0
vara=function(){alert(1);};alert(Number(a));//NaN转不了
vara=[];//0
vara=[''];//0
vara=[123];//123
vara=['123'];//123
vara=[1,2,3];//NaN
varjson={}//NaN转不了
vara=null//0
vara;alert(Number(a););//NaN
小结:json、未定义、函数、东西多的数组转出来都是NaN,转不了
parseInt(a,10);parseFloat(a,10);//默认都有两个参数,后边代表10进制
vara='100px';
用Number()方法是NaN;因为这个方法是转换整体的;
parseInt(a)//100这个方法是一个个的看如果发现不再是数字就截断了。这个方法只能转200px能把数字提取出来,其他的true函数等都是NaN。一般用它来转前边是数字的字符串
'+200'这种这两种方法都能转,+-空格等都认。它会继续往后跑看有没有数字提取出来
vara= '12.34万元';parseInt//不认识小数点12parseFloat//只认识第一个小数点12.34
隐式类型转换:
+ 200+'3' //2003 转成字符串
-*/% '200'-3//197 转成数字
++--vara= '10';a++;alert(a);//11 转成数字
><alert('10'>9);//true 转成数字
!取反alert(!'ok');//false不管!右边是什么都会转成一个布尔值
==alert('2'==2);//true不管数据类型是啥
alert('10'>'9');//false字符串的比较和数字的比较不同的是,会一位一位的比较1比9对应的码值小所以false。不再往后比较
===alert('2'===2);//两个数据类型不同的用全等,先判断类型再判断值,比==更严谨,但没有任何数据类型转换
NaN应用:
1,vara=Number('abc');alert(a);//NaNalert(typeofa);//Number 所以说数字和数字类型是两码事NaN是数字类型但不是数字
2,一旦程序出现NaN,说明肯定进行了非法的运算操作
3,NaN是fasleif(NaN)
4,数字和字符串与自己比较都是true,NaN与自己比较是false
NaN不是个数字的数字类型
isNaN()是不是不是一个数字(不是数字)
IsNaN();//truefalse//判断某些值是不是数字;不喜欢数字、讨厌数字;
alert(isNaN('250'));//false内部先会交给Number()转换再判断的
alert(isNaN(true));//falseNumber转换成1
它不讨厌数字类型(比如NaN)讨厌数字
alert(isNaN(NaN)); //true
运算符:
1)算术:
+ 在类型转换里可以把一个数字转换成字符串
-*/%在类型转换里可以把一个字符串转换成数字,如果转换不成就是NaN
2)赋值:=、+=、-=、*=、/=、%=
3)关系:<、>、<=、>=、==、!=(不等)、===、!==(全不等)
4)逻辑:&&与、||或、!否
vara=20<90&&20;alert(a);//弹出20,左边成立会走到右边
vara=120<90&&20;alert(a);//弹出false
vara=120<90||20;alert(a);//弹出20,即使左边是false,也会走到右边
程序流程控制:
1)判断:
if(){}elseif(){}else{}这种形式也可以用switch写
If(){}else{}形式可以用三目(三元)运算符来写
2)循环:while、for
3)跳出:break跳出循环、continue跳过本次循环
传参:
做东西的时候如果发现页面上两个或多个地方差不多相同,就可以用到函数传参,这时候应该有一个传参的意识,比如大型门户网站首页上很多个选项卡;同一个页面上有多组图片切换等。为了实现代码重用,把不一样的东西拿出来通过参数传递进去。(比如id、事件等都可作为参数)。写的时候尽量保证以下几点:
1)尽量保证HTML代码一致可以通过父级选取子元素;
2)把核心的 主程序先实现,然后用个函数包起来;
3)把每组里不同的值找出来,通过传参实现。
最后真假的问题小结:
真:true、非0的数字、非空(空格也算非空)字符串、非空对象(函数、能找到的元素、[]、{})
假:false、0、空字符串('')、null空对象、undefined(不能找到的元素)
新闻热点
疑难解答