您的位置:首页 > Web前端 > JavaScript

javascript-基础知识

2018-01-10 11:47 274 查看
JavaScript的核心就是ECMAScript

文档对象模型:DOM(整合js,css,html)

浏览器对象模型:BOM(整合js和浏览器)

一.Javascript引入方式

1.直接编写

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
alert("hello python")
</script>
</head>
<body>
</body>
</html>


2.导入文件

<body>
<script src="hello.js"></script>
</body>


新建一个javascript文件hello.js

二.变量的声明

var name="nick",age=13;


变量名:在变量前面用小写字母形式标记类型,其余均大写

var sName="nick"


三.注释

//或者/* */

四.函数

<script>
function sayHello() {
var hellolist="hello";
document.write(hellolist)
}
sayHello()
</script>


五.数据类型

1.基本数据类型

1)数字数据类型

包括整型和浮点型

2)字符串数据类型(string)unicode

var s=”hello”

var s1=”\u4f60\u597d\n欢迎来到\”javascript世界\””

经常用转义字符\n:换行;\’:单引号;\”:双引号;\:右划线;

3)布尔值 true false用于条件判断

if(true){

alert(“success”);

}

4)Undefined:Undefined

var a;声明了某个变量,但未对他进行赋值,则该变量就是Undefined

5)NULL类型

var obj=new Animal();new一个对象

var obj=NULL;开辟一块对象内存,占一个对象位置;

2.数据类型的转换

alert(1+”hello”)

数字+字符串->数字转化为字符串

数字+布尔值->true->1,false->0

字符串+布尔值->布尔值转化为字符串true或者false

alert(parseInt("a3.1415"))->强制转化为整数
//NaN:当字符串转化为数字失败就是NaN,属于Number
alert(NaN==0)  //false
alert(NaN>0)  //false
alert(NaN<0)  //false
alert(NaN==NaN)  //false
alert(NaN!=0) //true
//总结:NaN数据在表达式中结果一定为false,只有在!=中才是true
//强制转化为浮点数parseFloat
//将字符串强制转化为表达式并返回结果evel


数据类型判断

alert(typeof (3.14))
var s="hello";
alert(typeof(s));//string
var s2=new String("hello")
alert(typeof(s2));//Object
alert(s2 instanceof String);//true


六.ECMASCript运算符

1.算术运算符

1)+,-,*,/,%
-可以表示减号和负号
+可以表示加号和字符串连接符
2)递增++,递减--
var a=1;
var b=a++;先赋值在加1
var b=++a;先加1再赋值
var x=1;
var (x++);//1
var (++x);//3
var (--x);//2
var (x--);//2


2.逻辑运算符

==,!=,>,<,>=,<=,&&,||,!
逻辑AND运算符(&&),运算数不是原始的布尔值,则:
1)一个是对象,一个是布尔值,返回对象
2)两个都是对象,返回第二个对象
3)某个为null,返回null
4)某个为NaN,返回NaN
5)某个是Undefined,返回Undefined
>>右移,<<左移,NOT
位运算:&,|,^


3.条件语句

if…else…

<script>
var week="sunday"
if(week=="sunday"){
alert(7)
}else if(week="saturday"){
alert(6)
}else {
alert("not 6 or 7")
}
</script>


switch语句的基本格式

switch (表达式){
case 值1:语句1;break;
case 值2:语句2;break;
case 值3:语句3;break;
default:语句4;
}


for语句

var a=[1,"hello",true];
for (var i in a){
//console.log()还可以接受变量作为参数传递到字符串中,在html网页中右击检查,console中可以看到结果
console.log(i);//输出下标0,1,2
console.log(a[i]);//输出值
}


求0-100相加的和

var ret=0;
for (var i=1;i<101;i=i+1){
ret=ret+i        }
alert(ret)


字体从大到小输出hello

<script>
for (var i=1;i<=6;i=i+1){
document.write("<h"+i+">hello<h"+i+">");
document.write("<br>")
}
</script>


七.异常处理

try{}

catch(e){}

finally{}

主动抛出异常 throw Error(‘xxx’)

八.作用域比较

1.python的作用域

c="beijing"
def f():
c="shanghai"
def inner():
print(c)
return inner
ret=f()
ret()
def Bar():
print(c)
def f():
c="shanghai"
return Bar
ret=f()
ret()
# python是加载一半执行一半
# shanghai
# beijing


2.js作用域

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var city="beijing"
function func1() {
var city="shanghai"
function inner() {
console.log(city)
}
return inner
}
var ret=func1()
ret()
var city="beijing"
function Bar() {
console.log(city)
}
function func1() {
var city="shanghai"
return Bar
}
var ret=func1()
ret()
</script>
</body>
</html>
//程序加载完成后执行
//beijing
//beijing


补充

<script>
for(var i=1;i<=9;i++){
setTimeout(function timer() {
console.log(i)
},1000)
}
// 输出结果是1s后打印一次i的内容,结果是9个10
for(var i=1;i<=9;i++){
console.log(123)//10次123
}
console.log(i)//10
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: