首页 > 网站 > WEB开发 > 正文

JavaScript语言核心

2024-04-27 14:10:53
字体:
来源:转载
供稿:网友

javaScript语言核心

Posted on 2015-04-13 21:29 yanzi2015 阅读(...) 评论(...) 编辑 收藏

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(不能找到的元素)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表