js入门系列(1)--基本概念、变量、运算符、数组

入门的js其实很简单,只需要明白下面的几点:

一、js基本概念和组成

1.定义

  在一个页面中主要用于和用户的交互

2.特点

  js是基于对象的脚本语言。所谓的基于对象的语言就是指该脚本语言中没有封装,继承,多态三个特性

3.组成:ECMAScript+DOM+BOM

①ECMAScript:主要负责操控变量,函数,对象
②DOM:主要指操控标签的方式
③BOM:主要负责控制浏览器的相关操作

4.注意事项

①运行环境:js的运行环境是在客户端,因为不需要服务器也能够相应用户的需求
②书写位置
2-1 在head内部:js内部就不能包含任何操作标签的代码
2-2 在body内部:以内js执行顺序是从上到下执行的,所以必须放置在body内容的最后面

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <div id="warp">变红</div>
        <script>
            warp.onclick=function(){
                warp.style.color="red";
            }
        </script>
    </body>
</html>
点击变绿.gif

二、变量

1. 变量的定义:用来临时存放数据的容器
2. 声明变量: 关键字 var + 变量名
3. 变量名的命名规则

①组成:数字,字母,下划线,$。不能是关键字和保留字,并且区别大小写!
② 开头:不能以数字开头
③ 长度:不能超过255

4. 检测变量

① 检测变量类型:typeof(变量名)
② 检测工具:控制台--console

5.打印变量

① console.log(变量名) 。打印出来的是变量名的具体数值

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>变量</title>
    </head>
    <body>
        <script>
            var first=123;
            console.log(typeof(first));
            console.log(first);
        </script>
    </body>
</html>
检测类型和打印变量.png
6.类型

① 单一数据类型
1-1 number:数值型,包括整型,浮点型...

<script>
    var first=123;
    console.log(typeof(first));
    console.log(first);
</script>

number类型.png

1-2 string:字符串
 1-2-1 声明: var 变量名='值'/"值"
 1-2-2 注意
  1.只要由引号包裹的都是字符串类型
  2.引号自身不能嵌套自身。意思就是单引号可以嵌套双引号,双引号可以嵌套单引号,但是单引号不能嵌套单引号,双引号不能嵌套双引号

<script>
    var str="world";
    console.log(typeof(str));
    console.log(str);
</script>
string类型.png

1-3 Boolean:布尔类型
Boolean类型值只有true、false两种

<script>
    var str1=true;
    console.log(typeof(str1));
    console.log(str1);
</script>
Boolean类型.png

1-4 undefined:未定义/未声明/未赋值
1-4-1 undefined 数据类型,打印具体的数值会报错,但是打印数据类型不会报错
1-4-2 未定义和未声明指的是变量没有用关键字var声明

<script>
    console.log(typeof(a));
    console.log(a);
</script>

undefined类型.png

1-5 null:空对象

<script>
    a=null;
    console.log(typeof(a));
    console.log(a);
</script>
null类型.png
②复合数据类型

2-1 object:对象类型
2-1-1 定义:把事物的特征抽象出来
2-1-2 声明对象
  var 对象名={
    属性:"属性值",
    属性:"属性值",
     ......
  }

var stu={
        name:"zh",
        age:12,
        sex:"nan",  
    }

2-1-3 获取对象中的值:对象名.属性名

console.log(stu.name);

2-1-4 注意事项
  1.对象数据类型内部可以再有对象数据类型
  2.对象由{}包裹,内部是属性和属性值或者是对象
  3.属性和属性值用冒号分隔;属性和属性之间用逗号分隔。
  4.一般最后面的属性,不加逗号

var stu={
        name:"zh",
        age:12,
        sex:"nan",
        score:{
            math:19,
            chinese:70
            }
        }
console.log(stu.score.math);
7.变量转换

① 获取变量的途径: prompt():可弹出输入框,获取的数值类型是字符串类型
② 显示变量的途径:alert():弹出框

        var age=prompt('请输入年龄');
        alert(age+1);
        age=parseInt(age);
        alert(age+1);

③ 转换类型
3-1 隐式转换
  1. 数值+字符串=字符串
  2. 数值+布尔类型=数值类型[true为1 flase为0]
  3. 字符串+布尔类型=字符串
3-2 强制转换
1. parseInt:把以数字开头的值转换成整数类型。
  1. 可以是纯数字,比如parsseInt(1234)
  2. 可以是数字加字符串,比如paerseInt(123first)
  3. 可以是以数字开头的小数parseInt(12321.445)
2. parseFloat:把以数字开头的值转换成浮点型

        console.log(parseFloat(123.55))
            // -  *  /强制转换
        var m=1+2+'10'+2;
        console.log('您输入的:'+m)
            // 变量+常量
        console.log(1+true)
        console.log('1'+false)
强制转换.png

三、运算符

1. + - * / %

  该运算符比较简单,只需要注意一点:%取余 余数的正负号由被除数决定

console.log(10%3);
console.log(-10%3);
image.png
2.等号: = == ===

① =:作用的赋值
② ==:作用是比较,只要值相等,就说明两个数相等,返回true,否则返回false。一般用于if条件的比较
③ ===:作用也是比较,只有两个数的数值和数据类型相同时才相同,相同时返回true,否则返回false
④注意:复合数据类型不能进行简单的比较

console.log(1=='1');
console.log(1==='1');
image.png
3. ++a a++

①表达式:进行这个运算时,首先要明白表达式的含义,所谓的表达式是指有变量和运算符的式子。
② ++a: 先将a的值加1,加完之后再将a的值作为表达式的值
③a++: 先将a的值作为表达式的值,再将a的值加1

var a=10
console.log("a="+a++);
var b=10
console.log("b="+ ++b);
image.png
4.+= -= *= /=

  m+=10; 等价于 m=m+10,其余以此类推

var b=10;
b+=10;
console.log("b+=10:"+b);
image.png
5.&& || !

**①&& **:并运算 只要有一个为假,结果就为假
**② || **:或运算 只要有一个为真,结果就为真
③!:取反操作
④注意
4-1 当操作数是纯数字时
  1.&& 只要有一个为假,结果就为假,后面的比较就不再执行,否则一直执行。
  2.|| 只要有一个为真,结果就为真,后面的比较就不再执行,当有一个为假时,一直往下执行,直到找到真为止
4-2 结果为假的情况:0 undifined null false
4-3 结果为真的情况:只要是字符串都为真['undefined' 为真]

var m=10;
console.log(m<0&&m>9)
console.log(m>0||m<10)
console.log(!(m>0||m<10))
console.log(1&&2&&3);
// 3
console.log(0&&2&&3);
// 0
console.log(1||2||3);
// 1
console.log(0||1||2);
image.png

四、数组

1. 定义数组: var 数组名=[元素,元素,元素,......]
var array=[1,2,'zhia',true,[1,6,9]]

  在数组中,元素可以是任意的值,number类型,字符串类型,Boolean类型,甚至是数组。
  另外,获取数组内的元素可以是:数组名[下标]

    console.log(array[0]);        //获取普通的数组元素
    console.log(array[4][0]);    //获取数组内元素是数组的方式
2. 数组常用的方法

① 获取长度:数组名.length

    console.log(array.length);

② 添加元素
2-1 在头部添加:a.unshift('值')
2-2 在尾部添加:a.push('值')
2-3 在中间添加:a.splice(操作的位置,删除的元素个数,添加的值)

    array.unshift('在头部添加的值')
    console.log(array);

    array.push('在尾部添加的值');
    console.log(array);

    array.splice(3,0,'在中间添加的值');
    console.log(array);

③ 检测数组内的元素是否出现:数组名.indexOf(要检测的元素)

    console.log(array.indexOf(true));
    console.log(array.indexOf(12345));
    //如果存在该源于就返回该元素所在的下标,如果不存在,返回-1

  检测数组内的元素要注意以下两点:
第一点:检测的元素必须一模一样,也就是说检测的方法用的是三个等号的比较方法即indexOf是使用“===”比较两个数是否相等
第二点:对象是没有办法检测到的,因为对象和数组的存放地址不一样
④ 数组元素赋值:数组名.[下标]=值

    array[array.length-1]=90
    console.log(array);//如果下标存在,则是修改元素的值

    array[90]=100;
    console.log(array);
//如果下标不存在,则给相应下标的元素赋值,其余中间的值为空,并且同时拓展了数组的长度

⑤ 删除元素
5-1 在尾部删除:a.pop();
5-2 在头部删除:a.shift();
5-3 在中间删除:a.splice(操作的位置,删除的元素个数)

    array.pop()
    console.log(array);

    array.shift();
    console.log(array);

    array.splice(3,1);
    console.log(array);

⑥ 合并数组
6-1 合并两个数组 a.concat(b)
6-2 合并三个数组 a.concat(b,a)

    var a=[1,2,3];
    var b=[4,5,6];
    var c=a.concat(b);
    console.log(c);

    var d=a.concat(a,c);
    console.log(d);

⑦转换输出
7-1 转换成字符串输出 a.join();
7-2 转换成字符串 a.toString();
7-3 数组反向输出:a.reverse();

    var e=a.join();
    console.log(e);

    var f=a.toString();
    console.log(f);

    a.reverse();
    console.log(a);

image.png

⑧ 排序
8-1 按字母升序:a.sort()
8-2 按数字升序:a.sort(function(a,b){return a-b});
8-3 按数组降序:a.sort(function(a,b){return b-a});

    var g=["f","w","a","v"];
    console.log(g.sort());

    var h=[3,6,1,4,5];
    h.sort(function(a,b){return a-b});
    console.log(h);

    h.sort(function(a,b){return b-a});
    console.log(h);

⑨ 注意事项
  1.修改数组元素的最后一个值,可以用长度减1。

    array[array.length-1]=90;

  2. 数组属于不是js中的数据类型,但是是属于js中复合数据类型里面的object类型的
  3. 数组的长度是下标加1。

    array[100] =100 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,731评论 2 9
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,095评论 0 3
  • 第一章 错误处理: 错误: 程序运行过程中,导致程序无法正常执行的现象(即bug) 现象: 程序一旦出错,默认会报...
    fastwe阅读 1,093评论 0 1
  • 第三章 类型、值和变量 1、存取字符串、数字或布尔值的属性时创建的临时对象称做包装对象,它只是偶尔用来区分字符串值...
    坤少卡卡阅读 626评论 0 1
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,211评论 0 4