JavaScript语言核心

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript语言核心相关的知识,希望对你有一定的参考价值。

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、false
10 
11 function fn1(){alert(1);}
12 alert(typeof fn1); //function
13 
14 var obj = window;
15 var obj = document;
16 alert( typeof obj ); // object
17 
18 var arr = [1,2,3,4];
19 alert(typeof arr);   //object
20 
21 var json = {
22     ‘name‘:‘xiaowang‘,
23     ‘age‘:5
24 };
25 alert(typeof json);  //object
26 
27 var n = null;
28 alert(typeof n);  //object
29 
30 var u;
31 alert(typeof u);   //undefined
技术分享

除了空对象以外的对象类型,都可以添加自定义属性。

 

数据类型转换:

HTML标签类型也可以转换,比如inline转换成block。

var a = ‘100‘;

alert(a+100);  //100100 字符串连接

字符串转换成数字类型:

强制类型转换/显示类型转换 Number(); parseInt(); parseFloat();

1)方法:

Number(); 

var a = ‘100‘; //  ‘000100‘ , ‘+100‘

alert(Number(a)); //100

var a =‘‘;

alert(Number(a));  //0

var a = true ;

alert(Number(a));  //true 1 false 0

var a =function(){alert(1);}; alert(Number(a));  //NaN 转不了

var a = []; //0

var a = [‘‘]; //0

var a = [123]; //123

var a = [‘123‘];//123 

var a = [1,2,3]; //NaN

var json = {} //NaN 转不了

var a = null //0

var a; alert(Number(a);); //NaN

小结:json、未定义、函数、东西多的数组转出来都是NaN,转不了

 

parseInt(a,10); parseFloat(a,10); //默认都有两个参数,后边代表10进制

var a =‘100px‘;

用Number()方法是NaN;因为这个方法是转换整体的;

parseInt(a) //100 这个方法是一个个的看如果发现不再是数字就截断了。这个方法只能转200px能把数字提取出来,其他的true 函数 等都是NaN。一般用它来转前边是数字的字符串

‘+200‘这种这两种方法都能转, + - 空格等都认。它会继续往后跑看有没有数字提取出来

var a = ‘12.34万元‘; parseInt//不认识小数点12 parseFloat//只认识第一个小数点12.34

 

隐式类型转换:

+          200+‘3‘ //2003 转成字符串

- * / % ‘200‘- 3  //197 转成数字

++ --    var a = ‘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,var a = Number(‘abc‘); alert(a);//NaN alert(typeof a); //Number 所以说数字和数字类型是两码事 NaN是数字类型但不是数字

2,一旦程序出现NaN,说明肯定进行了非法的运算操作

3,NaN 是 fasle if(NaN)

4,数字和字符串与自己比较都是true,NaN与自己比较是false

 

NaN     不是个数字的数字类型

isNaN()  是不是不是一个数字(不是数字)

IsNaN();  //true  false  //判断某些值是不是数字;不喜欢数字、讨厌数字;

alert(isNaN(‘250‘)); //false 内部先会交给Number()转换再判断的

alert(isNaN(true)); //false Number转换成1

它不讨厌数字类型(比如NaN)讨厌数字

alert(isNaN(NaN)); //true

 

运算符:

1)算术:

+           在类型转换里可以把一个数字转换成字符串

- * / %   在类型转换里可以把一个字符串转换成数字,如果转换不成就是NaN

2)赋值:=、+=、-=、*=、/=、%=

3)关系:<、>、<=、>=、==、!=(不等)、===、!==(全不等)

4)逻辑:&&与、||或、!否

 

var a = 20<90&&20;alert(a); // 弹出20,左边成立会走到右边

var a = 120<90&&20;alert(a); // 弹出false

var a = 120<90||20;alert(a); // 弹出20,即使左边是false,也会走到右边

 

程序流程控制:

1)判断:

if(){}else if(){}else{} 这种形式也可以用switch写

If(){}else{} 形式可以用三目(三元)运算符来写

2)循环:while、for

3)跳出:break跳出循环、continue跳过本次循环

 

传参:

做东西的时候如果发现页面上两个或多个地方差不多相同,就可以用到函数传参,这时候应该有一个传参的意识,比如大型门户网站首页上很多个选项卡;同一个页面上有多组图片切换等。为了实现代码重用,把不一样的东西拿出来通过参数传递进去。(比如id、事件等都可作为参数)。写的时候尽量保证以下几点:

1)尽量保证HTML代码一致可以通过父级选取子元素;

2)把核心的 主程序先实现,然后用个函数包起来;

3)把每组里不同的值找出来,通过传参实现。

 

最后真假的问题小结:

真:true、非0的数字、非空(空格也算非空)字符串、非空对象(函数、能找到的元素、[]、{})

假:false、0、空字符串(‘‘)、null空对象、undefined(不能找到的元素)

以上是关于JavaScript语言核心的主要内容,如果未能解决你的问题,请参考以下文章

你可能不知道的JavaScript代码片段和技巧(上)

译文:18个实用的JavaScript代码片段,助你快速处理日常编程任务

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

CSP核心代码片段记录

vs code 自定义代码片段

VSCode自定义代码片段12——JavaScript的Promise对象