javascript前三章

1、javascript引用放在<body>元素中页面内容的后面,按顺序重上到下执行。

每个语句结尾都要加分号,声明变量名前都必须加var 。例如:var a=0;

2、html立即下载,延期执行script。

 <script type="text/javascript" defer="defer" src="example.js"></script> 

 

3、async异步加载HTML和所有script。

<script type="text/javascript" async src="example.js"></script> 
4、函数名、变量、操作符都区分大小写;
标识符:函数名、变量名、函数参数、属性名命名第一个字符必须为字母/下划线/$,其他字符可以使字母、下划线、$、数字。
5、//单行注释;  
/*
*多行注释
*哈哈
*/
6、严格模式:script标签第一句<script>"use strict"</script>
7、typeof();
var a="hello";
alert(typeof(a));  //"string";
var b=null;
alert(typeof b);  //"object";  null被认为是空的对象引用。
alert(typeof(1));  //"number"
8、undefined
已声明但未初始化的变量默认为undefined,所以比较a与undefined字面量时两者相等。
var a;
alert(a==undefined);
未声明的变量报错,例如; alert(age);  //产生错误。
aler(null==undefined); //true
9、boolean

数据类型转换为true的值转换为false的值
boooleantruefalse
string非空字符" "空字符
number非0数字0 NaN
object任何对象null
undefined undefined

10、number类型

八进制第一位必须是0.然后是八进制数字序列(0~7)。

例如:var num1=070;   //八进制的56

           var num2=079;    //无效的八进制数值。-解析为79

           var num3=08;      //无效的八进制数值。-解析为08

var floatNum=3.125e3 //31250000

NaN(not a number),非数值的数值,特点:(1)任何涉及NaN的操作都会返回NaN,因此不会影响其他代码的执行,但在多步计算中有可能导致出错;(2)NaN与任何值都不相等,包括NaN本身。


alert(isNaN("hello"));  //true(不可转换成数字)

alert(isNaN(NaN));  //true

alert(isNaN(4));  //false(4是一个数字)

alert(isNaN("4"));  //false(可被转换成数字)

alert(isNaN(true))  //false(可以被转换成数值1)


Number()函数

var num1=Number("")  //0

var num2=Number(true)  //1

var num3=Number(false)  //0

var num4=Number(“hello”)//NaN

var number5=Number(undefined)  //NaN

var number6=Number(null)  //0

var number7=Number(011)  //11


Number()函数在转换字符串时复杂且不合理,所以更常用parseInt(),从第个字符开始解析

var num1=parseInt(“”);  //NaN

var num2=parseInt("q123");  //NaN

var num3=parseInt(070); //56(八进制)

var num4=parseInt(0xf)  //15(十六进制)

var num5=parseInt(11.1) //11(小数点不是数值)

var num6=parseInt(“123blue”) //123

var num7=parseInt("0xAF",16)  //175(第二个参数代表:十六进制)


parseFloat()

var num1=parsefloat("123blue")  //123

var num1=parsefloat(0xa)  //0

var num1=parsefloat("123.1")  //123.1

var num1=parsefloat("123.1.1")  //123.1

var num1=parsefloat("1.23e2")  //123


11、string()类型

var a='hello"  //语法错误(左右引号必须匹配)

var num=10;

alert(num.tostring()); //"10"

alert(num.tosrting(2));  //"1010"

alert(num.toString(8)); //"12"

alert(num.toString(10));  //"10"

alert(num.tostring(16));  //"a"

在不知道要转换的是不是null或undefined时,还可以使用string(),String()能将任何类型的值转换成字符串。

String()遵循的规则:(1)如果值有toString()方法,则调用该方法(null和undefined没有toString()方法);(2)如果值是null,则返回“null”;(3)如果值是undefined,返回“undefined”。

12、object()类型

var age=29;

var anotherAge=--age + 2;

alert(age)   //28

alert(anotherAge)  //30


var num1=2;

var num2=3

var num3=--num1+num2  //4

var num4=num1+num2  //4


var num1=2;

var num2=3

var num3=num1-- + num2  //5

var num4=num1+num2  //4


var a="2" ;  a++;   //3

var b="haha"; b++  //NaN

var c=false; c++  //1

var d=1.1; d++  //0.100000000009(浮点舍入错误所致)


var f={valueOf:function(){

return 0;

}};

f++;  //1


13、布尔操作符

! //非

alert(!“blue”) //false

alert(!!"blue")  //true


&&  //与

var a;

var b;

var result=a&&b;

a和b任意一个是true ,则返回true;

若第一个操作数是对象,则返回第二个操作数;

若第二个操作数是对象,第一个操作数是true时,才会返回第二个操作数;

若第一个操作数是null,则返回null;

若第一个操作数是NaN,则返回NaN;

若第一个操作数是undefined,则返回undefined;

当第一个操作数是true,第二个操作数未声明时,报错且不向下执行。

当第一个操作数是false,第二个操作数未声明时,返回false。


||  //或

第一个操作数是false,返回第二个操作数。

第一个操作数是对象,返回第一个操作数;

如果连个操作数都是对象,返回第一个操作数;

若两个操作数是null,则返回null;

若两个操作数是NaN,则返回NaN;

若两个操作数是undefined,则返回undefined;

14、乘性操作数

乘法

如果有一个操作数不是数值,则调用Number()将其转换为数值,再相乘;

如果有一个操作数是NaN,则结果是NaN;


除法

如果有一个操作数是NaN,则结果是NaN;

如果是0/0,结果是NaN;

任意数/0,结果是Infinity;

如果有一个操作数不是数值,则调用Number()将其转换为数值,再相乘;

余数

被除数/infinity,结果是0;

被除数是0,结果是0;


加性操作符

加法

var result=5+“5”;

alert(result);  //"55"(数字5被转换成了“5”);

var num1=5;

var num2=3;

var result="hello"+num+num2;  //"hello 53"(从左到右顺序相加)


字符串转换成数值

var a="1"

+a=1

-a=-1

var b="2"

b-0

b=2


数值转换成字符串

var c=3

c+""

c="3"


减法

var a=1+true;  //2

var b=1+NaN;  //NaN

var c=5-"";  //5

var d=5-null;  //5(null转换为0)

var e=5-"2";  //3


关系操作数

var result=“23”<“3”  //true(字符串比较的是字符编码)

var result=“23”<3  //false(字符串和数字比较时,字符串都会转化为数值)

var result=“a”<3  //false(a转化成了NaN)


相等操作符

==

(1)如果一个操作数是布尔值,比较前先将其转换为数值;(false转换为0,true转换为1)

(2)如果一个数是字符串,另一个数是数值,在比较像等之前现将字符串转换为数值;

(3)如果两个操作数都是对象,,则比较他们是不是同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回true,否则返回false;

(4)如果一个是对象,另一个不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规定进行比较;

(5)在比较相等性之前,不能将null和undefined转换成其他任何值;

(6)null==undefined

(7)如果一个操作数是NaN,则相等操作符返回false;

表达式表达式
null==undefinedtrueundefined==0false
true==1truenull==0false
"NaN"==NaNfalse"5"==5true
5==NaNfalse  
NaN==NaNfalse  
false==0true  

var result=("55"==55)  //true

var result=("55"====55)  //false


var result=("55"!=55) //false("55"转换后相等)

var result=("55"!==55) //false(数据类型不相等)

null==undefined  //true类似的值
null===undefined  /false(不同类型的值)

条件操作符

var max=(num1>num2)?num1:num2;

var num=1;
var result1=result1+2;
var result2 +=2;

result1=result2;



var i=0; 

var count=10; 

while(i<count)

{

alert(i);

i++;

};      //9


var i=0; 

var count=10; 

while(i<count)

{

alert(i);

i++

};  

alert(i);  //10


break和continue

var num=0;

for(i=0;i<10;i++){

if(i%5==0){

break;

}

num++

}

alert(num);  //4  当i=5,num=4时,i%5==0,break在num递增之前退出循环.

for(i=0;i<10;i++){

if(i%5==0){

continue;

}

num++

}

alert(num);  //8 


switch(i){

case 1:

alert("1");

break;

case 2:

alert("2");

break;

case 3:

case 4:

alert("3 or 4");

break;

default:

alert("others");

}

switch("hello world"){

case "hell0"+"world":

alert("great");

break;

case "goodbye":

alet("bye");

break;

default:

alert("guagua");

}


var num=25;

switch(true)

{

case num<0;

alert("小于0");

break;

case num>0&&num<=10:

alert("0<num<=10");

break;

default:

alert("大于10");

}


严格模式:(1)函数名/参数名都不能为eval/argument;(2)不能出现命名参数同名的情况。

function add(num1,num2){

if(argument.length==1){

alert(argument[0]+10);

}else if(argument.length==2){

alert(argument[0]+argument[1]);

}

}


当存在两个相同的函数名时,该名字只属于后定义的函数。


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值