JavaScript入门

102 阅读2分钟

组成

  • ecma标准
  • bom 浏览器对象
  • dom 文档对象

使用

  • 在任何位置使用script标签<script>document.write('直接使用')</script>
  • 外部引 <script src="./" type="text/javascript"></script>
  • 直接在html中使用 <input type="botton" value="点击" onclick="javascript:document.write('点击成功')">

核心语法(变量 语法约定 数据类型 运算符号 数组 控制语句 注释)

变量

使用var声明变量,变量有三种声明赋值方法
1、先声明再赋值

        var width;
        width = 100;

2、同时声明和赋值

        var width=100;
        var width,height=100; 只赋值给了heightwidth还是undefined初始值

3、不声明直接赋值

        width = 100;也能成功,但是会改变全局的width值

数据类型

可以用typeof来查看变量是什么数据类型。
undefined 初始值

        var a;
        document.write(typeof(a))

null 空值,与undefined相等

        var a = null;
        document.write(a)

number 整数、浮点数

        var a = 100;
        var b = 12.2;
        document.write(typeof(a))
        document.write(typeof(b))

bollean 布尔型 true、false

        var a = 100;
        var b = 12.2;
        document.write(typeof(a>b))
        document.write(typeof(a<b))

string 字符串 被(单/双)引号括起来的文本

        var str1 = '字符串';
        var str2 = "还是字符串";
        document.write(typeof(str1))
        document.write(typeof(str2))

Symbol es6新增的数据类型,表示括号内容是独一无二的数(就算别人和他数值一样,意义也不相等)

        var sym1 = Symbol(12);
        var sym2 = 12;
        document.write(sym1 == sym2)
        document.write(typeof(sym1))

对象

        var obj = {};
        document.write(typeof(obj))

运算符

+加号

        var a = 1;
        var b = 2;
        var c = '3';
        document.write(a+b) 数值a+数值b等于3
        document.write(a+c) 数值a+字符串c,a会进行隐式转换,变成字符串类型,和c拼接,等于13

-减号

        var a = 1;
        var b = 2;
        var c = '3';
        document.write(a - b) 数值a-数值b等于-1
        document.write(a - c) 数值a-字符串c,c会进行隐式转换,变成数值类型,和a相减,等于-2

*乘号

        var a = 2;
        var b = 2;
        var c = '3';
        document.write(a * b) 数值a*数值b等于4
        document.write(a * c) 数值a*字符串c,c会进行隐式转换,变成数值类型,和a相乘,等于6

/除号

        var a = 6;
        var b = 2;
        var c = '3';
        document.write(a / b) 数值a/数值b等于3
        document.write(a / c) 数值a/字符串c,c会进行隐式转换,变成数值类型,和a相除,等于2

%取余

        var a = 6;
        var b = 2;
        var c = '4';
        document.write(a % b) 数值a/数值b等于2余数0
        document.write(a % c) 数值a/字符串c,c会进行隐式转换,变成数值类型,和a相除,等于1余数2

++原值加1

        var num1 = 2;
        var num3 = 2;
        var num2 = num1++;
        var num4 = ++num3;
        document.write(num1) num1初始值=2,经历了下方的num1++,所以读到最下面write语句时,num1=3
        document.write(num2) num2等num1,此时num1还未经过++,所以num2=2
        document.write(num4) num3先经过++,变成num3=3,num4等num3,所以num4=3

--原值减1

        var num1 = 2;
        var num3 = 2;
        var num2 = num1--;
        var num4 = --num3;
        document.write(num1) num1初始值=2,执行了第三行num1--,所以读到最下面write语句时,num1=1
        document.write(num2) num2等num1,此时num1还未经过--,所以num2=2
        document.write(num4) num3先经过--,变成num3=1,num4等num3,所以num4=1

大于号

        var a = 10;
        var b = 20;
        document.write(a > b) 10>20是错的,输出布尔值false

小于号

        var a = 10;
        var b = 20;
        var c = 5;
        document.write(a < b) 10>20是对的,输出布尔值true
        document.write(a < b < c) 不要使用连续比较,结果只返回第一个<的结果true,是错误的
        document.write(a > b > c) 不要使用连续比较,结果只返回第一个>的结果false,是错误的

大于等于和小于等于

        var a = 10;
        var b = 20;
        document.write(a >= b) a不大于也不等于b,返回false
        document.write(a <= b) a不等于b,但是a小于b,只要有一个比较运算是对的,就返回true

==(只比较值),===(不仅比较值,还比较类型),!=(不等于,只比较值)

        var a = 2;
        var b = '2';
        var c = '3';
        document.write(a==b) ab的值是一样的,返回true
        document.write(a===b) ab的值是一样的但是a是number,b是string,类型不一样,返回false
        document.write(a!=c) a和c的值不一样,类型也不一样,但是!=只比较值,所以返回true