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语言核心的主要内容,如果未能解决你的问题,请参考以下文章