javascript-基础知识

JavaScript的核心就是ECMAScript
文档对象模型:DOM(整合js,css,html)
浏览器对象模型:BOM(整合js和浏览器)
一.Javascript引入方式
1.直接编写


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
    <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 (表达式){
            case1:语句1;break;
            case2:语句2;break;
            case3:语句3;break;
            default:语句4;
        }

for语句

var a=[1,"hello",true];
for (var i in a){
   //console.log()还可以接受变量作为参数传递到字符串中,在html网页中右击检查,console中可以看到结果
   console.log(i);//输出下标012
   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("+i+">hello+i+">");
          document.write("
"
) }
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作用域


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
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>

你可能感兴趣的:(javascript)