`

javascript

    博客分类:
  • JS
 
阅读更多

一、定义js代码

<script type="text/javascript">  </script>
<script type="text/javascript" src="文件名字">  </script>

 二、变量声明及赋值

var t1=123;//声明变量(全局)
var t2 = "test";	//局部变量
function test3(){
     t3 = "test";	//全局变量
     alert("--"+t3)		
}

 一道js面试题

var t1=123;
//在全局和局部有重名的变量
	
//执行函数会使用局部变量
function test(){
	alert(t1);//undefined
	var t1=234;
	alert(t1)//234
}
	
test();
	
alert(t1);//123

 三、JS调用方式

1、直接调用

 

<script type="text/javascript">
	test01();
	function test01(){
				
	alert("test");
        return false;
}
</script>
 2、事件调用

 

 

<input type="button" value=test onclick="test01();">
 3、伪协议调用

 

<a  href="javascript:test01();" >test</a>

 ps:一个小技巧(在超链接中调用js但不跳转)

<a href="javascript:void(0)" onclick="test01();">gaga</a>

<a href="http://www.baidu.com" onclick="return test01();">gaga</a>
function test01(){
				
				alert("test");
				return false;
			}

 四、js数据类型

变量是没有类型的,数据是有类型的。常用的有如下6种类型:

undefined未定义 (声明了变量但从未赋值 )

boolean布尔型 (true,false) 

boolean 的定义方式:

var t = Boolean(1);//得到true

字符串string (单引号、双引号均可) 

数值number:包括整数和小数,NaN(Not a Number),Infinity, -Infinity 

1/0 得到  Infinity
 -1/0 得到 -Infinity  Number('test') 得到NaN 表示不是数字的数字类型

对象object null空  (赋值为null) null 也是一种Object

 

 五、数据类型的转换

1、Number(mix)

如果是布尔值,true和false分别被转换为1和0

如果是数字值,返回本身

如果是null,返回0.

如果是undefined,返回NaN。

如果字符串中只包含数字,则将其转换为十进制(忽略前导0)

如果字符串中包含有效的浮点格式,将其转换为浮点数值(忽略前导0)

如果是空字符串,将其转换为0

如果字符串中包含非以上格式,则将其转换为NaN ‘ssd2342df’

 

 2、String()

如果是null,返回”null”

如果是undefined,返回”undefined”

 

3、Boolean()

 

alert(Boolean(0))
alert(Boolean(false))
alert(Boolean(null))
alert(Boolean(undefined))
alert(Boolean(NaN))
alert(Boolean(""));//全是false,其他事true。特别是对象,是true如下
alert(Boolean(new Date()))

 

 六、js中的比较

 ==表示弱等号,只是比较值,不比较类型

alert(true=="true");//false  String Number Boolean 这三种数据之间比较,如果两边不是number类型的会先转化成Number类型。本题true转化为1,“true”转化为NaN
alert(NaN==NaN);//false  NaN是唯一一个和自己都不想等
alert("123"==123)//true

'' == '0'   //false 两边数据类型相同,则直接比较值

var t = {};//json 对象

alert({}=={});//false 比较地址

alert([]==[])//同上

 

alert([1]==1)//true 对象与Number、Boolean、String比较的时候,会调用ValueOf方法,没有就调用toString方法,[1]的valueOf方法返回1,所以为true。但是alert([1,2].valueOf())会得到1,2

 

alert(!{} == {} )//false 左边:要进行boolean运算要先将对象转化为boolean类型的值,对象不再六中情况之内为true,在进行非运算得到false。右边得到字符串。两边在转化为Number类型,这是左边是0,右边是NaN

 

alert(![]==[])//true 左边[]转化为Boolean得到true,非一下为false。右边得到空字符转。两边在转化为Number的0=0

 

alert(null==null)

 

alert(null==undefined)//这两种是想等的,null与其他类型的比较是不等的

===是强等,要求数据类型和类型都相同

 

规则总结

==  弱等  隐式转换 

Boolean String Number三种数据之间比较

X==y (x,y 数据类型一样 ,比较值)

X和y不一样

X和y 隐式转换为number再做比较

true==”true”//false

NaN==NaN//false  NaN和自己都不相等

Null,undefined  和其他比较不等

X==y 比较的时候如果其中出现了一个object

Obj 有valueof直接调用得到值后比较 没有调用toString();

比较规则回到前面

{}=={}

[]==[]

!{}=={}//false

 

![]==[]//true

 

七、js中的控制语句

switch语句

 

switch (expression){
       case const1:
		语句块1;
                 break;   
	case  const1:
		语句块2
	…… 
	default:
		语句块N
}
 if语句

 

 

if(t==123){
		alert("相等")
}
				
if(t===123){				
	alert("gaga")
}
 for循环(while与java一样不再写了)

 

var t=[1,2,3,new Date(),{},"test"];
			
for(var i=0;i<t.length;i++){
	alert(t[i]);
}
for(var t1 in t){
	alert(t[t1]);
}

 

 八、数组

1、数组长度随时可变!随时可以修改!我们可以通过修改数组的长度清空数组。 

2、Array.length获得数组长度

3、

var arr01=[1,2];
alert(arr01.join("-*-")) 得到1-*-2

 4、

 

arr01.unshift("test"); //从最前面插入数组
alert(arr01.shift())//获取数组最前面的元素

 5、

 

arr01.push("test")//将元素添加到数组最后的位置
alert(arr01.pop())//获取数组最后的元素

 

 

 九、js函数

1、函数传递声明及传递参数问题(D:\TecSty\笔记\JS\testjs02day\testfunc.html)

//方法1
var t = function(b1,b2){		
	alert(b1+"-"+b2)
}
//方法2
function test2(t){
    alert('blabla');
}
t(123,123,123);//调用的时候传递多少参数都没有关系,形参的个数只是说明了函数想接受的参数的个数,另外js函数的参数实际存储在arguments数组里面

 2、js中函数也是一个对象(D:\TecSty\笔记\JS\testjs02day\testfunc.html)

function test2(t){
	t();
}
var t2 = function(){alert("test")};
test2(t2);

 3、js执行顺序问题(D:\TecSty\笔记\JS\testjs02day\testfunc02.html)

var add=function(a){

	alert(a+100);	
	
}
预加载
function add(a,b,c){
	
	alert(a+b+c)
}
function add(a,b){
	
	alert(a+b);
}
add(123,123,123);//无论var add=function(a)放在哪个位置,都会调用这个函数,因为以下面的当时声明的函数会进行预加载,在正式执行的时候,add这个变量还是会指向以第一中方式定义的函数。从这里还可以看出js没有函数从在的概念

ps:关于预加载的一个题目

 

<script type="text/javascript">
            function f(){
                return 1;
            } 	
            alert(f());
            var f = new Function("return 2;");  
            alert(f());
            var f = function(){
                return 3;
            } 
            alert(f());
            function f(){
                return 4;
            }  
            alert(f());
            var f = new Function("return 5");
            alert(f());
            var f = function(){
                return 6;
            } 
            alert(f());
        </script>
//答案是 4 2 3 3 5 6

 

 4、模拟函数重载

function add(){
	var l1 = arguments.length;
	if(l1==2){
		return arguments[0]+arguments[1]
		
	}else if(l1==3){
		
		return arguments[0]+arguments[1]+arguments[2];
		
	}else{
		
		alert("参数个数不对")
	}
	
}

//这样add函数可以处理各种参数列表的函数

 5、函数定义的本质

var  f1 = new Function("x1","x2","alert(x1+x2)");
//这就是f1函数定义的本质,前两个是参数,后面的是函数体

 6.使用变量指向对象的方法

var  f1 = new Function("x1","x2","alert(x1+x2)");
var a = new function(){}
//方法3
function getChildElements(faid){}
var a = getChildElements;
a('picContainer');

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    深入理解JavaScript系列

    本书是一本全面、深入介绍JavaScript语言的学习指南。本书共分四个部分,第1部分帮助读者快速入手,掌握基本的JavaScript编程要点;第2部分介绍JavaScript的发展和技术背景;第3部分深入探索JavaScript,介绍了语法...

    head first JavaScript源码

    《Head First JavaScript源码》是2010年出版的一本中文版JavaScript学习书籍的源码,这本书以其独特的视觉设计和易理解的方式深入浅出地介绍了JavaScript编程语言。JavaScript是一种广泛应用于网页和网络应用的脚本...

    JavaScript权威指南(JavaScript犀牛书一本)

    《JavaScript权威指南》是JavaScript编程领域的一本经典之作,由著名技术作家David Flanagan撰写,被誉为"JavaScript犀牛书"。这本书深入浅出地讲解了JavaScript语言的核心概念、语法特性和高级特性,对于想要全面...

    JavaScript语言精粹完整版

    《JavaScript语言精粹》作为一本深入浅出讲解JavaScript编程语言的经典之作,对于想要提升自己JavaScript技能的开发者来说,无疑是一份宝贵的资源。本书由Douglas Crockford所著,他不仅是JSON格式的创始人,也是...

    VS2015安装证书,JavaScript_ProjectSystem.msi,JavaScript_LanguageService.msi

    在这个场景中,我们关注的是VS2015的安装过程中涉及到的证书问题以及两个特定的组件:JavaScript_ProjectSystem.msi和JavaScript_LanguageService.msi。 首先,关于“VS2015安装证书”,这通常是指安装过程中需要...

    JavaScript学习指南 高清 PDF

    JavaScript,一种广泛应用于Web开发的脚本语言,是前端开发的核心技术之一。这份"JavaScript学习指南"高清PDF,无疑为想要深入理解JavaScript的初学者或有一定基础的开发者提供了宝贵的资源。下面,我们将深入探讨...

Global site tag (gtag.js) - Google Analytics