js初级复习

1.条件语句

1.三目运算符:

num % 2 == 0 ? alert('该数字是偶数') : alert('该数字是奇数');

2.switch语句

var a = '星期一';
            switch(a) {
                case '星期一':
                    alert('今天星期一');
                    break;
                // default:

            }

3.break:跳出当前循环(函数),继续向后执行。
continue:结束本次循环,开启下一次循环。

2.数组

1.数组中常用的方法

var arr1 = [1, 2, 3, 3, 'hello', 3, '22'];

            // 把数组转为字符串的方法:toString();
            var str = arr1.toString();
            console.log(str);
            console.log(arr1);
            // join():把数组转为字符串时,可以指定元素与元素之间的连字符
            str = arr1.join('+');
            console.log(str);
            console.log(arr1);

            // 从数组末尾添加新元素:push();
            var count = arr1.push('我是新元素1', '我是新元素2','我是新元素3');
            console.log(count);
            console.log(arr1);

            // 从数组末尾删除元素:pop()
            count = arr1.pop();
            console.log(count);
            console.log(arr1);

            // 从数组起始位置删除元素:shift()
            count = arr1.shift();
            console.log(count);
            console.log(arr1);

            // 从数组的起始位置插入新元素:unshift()
            count = arr1.unshift('23');
            console.log(count);
            console.log(arr1);

            // 根据当前数组创建一个新数组:concat()
            var arr2 = arr1.concat([1, 2, 3, 4, 5])
            console.log(arr1);
            console.log(arr2);

            // 根据已有的数组创建新数组:slice()函数中的两个参数分别表示要获取当前数组中元素的起始下标(包含)和结束下标(不包含);
            var arr3 = arr1.slice(1,3);
            console.log(arr1);

            //判断3在下标为4的地方开始到最后是否存在,存在返回下标,不存在返回false。
            var inde = arr1.indexOf(3, 4);
            console.log(inde);

2.冒泡排序
外侧循环控制比较的趟数,内层循环控制比较的次数。

var arr = [100, 29, 23, 13, 4]
        // 外层循环控制趟数:元素个数-1
        for (var i = 0; i < arr.length-1; i++) {
            // 内层循环控制每一趟比较的次数:元素个数-趟数
            for (var j = 0; j < arr.length-1-i; j++) {
                // j代表当前获取到的元素下标
                if (arr[j] > arr[j+1]) {
                    var temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        console.log(arr);

3. 字符串

1.字符串的管理形式借助于数组结构,所以也可以使用变量名[下标]的形式获取到单个字符,也可以通过遍历取到每一个字符。
2.字符串的方法

// 字符串拼接操作:concat()\+
            var str4 = str3.concat(' kitty');
            // console.log(str3);
            // console.log(str4);

            // slice():有一个参数时,从当前参数指定的下标截取到字符串末尾
            var str5 = str4.slice(5);
            // console.log(str4);
            // console.log(str5);
            // slice():有两个参数时,第一个参数时截取的起始下标,第二个参数是截取的终止下标(不包含终止下标的字符)
            var str6 = str4.slice(5, 9);
            // console.log(str4);
            // console.log(str6);

            // substring():如果有一个参数,表示从当前下标一直截取到结束位置;如果有两个参数,第一个参数表示截取起始位置,第二个参数表示截取结束位置(不包含结束为止的字符)

            // substr():如果有一个参数,表示从当前下标一直截取到结束位置;如果有两个参数:第一个参数是截取起始位置,第二个参数是从起始位置开始截取的字符个数
            var str7 = str4.substr(5, 2);
            // console.log(str4);
            // console.log(str7);

            // indexOf():如果只有一个参数,则表示从左向右搜寻和该参数匹配的字符,并返回该下标,如果没有,则返回-1;
            var inde = str4.indexOf('o');
            console.log(str4);
            console.log(inde);

            // indexOf():如果有两个参数,第一个参数表示要查找的字符,第二个参数表示从指定的下标开始从左向右查找。
            inde = str4.indexOf('o', 5);
            // console.log(str4);
            // console.log(inde);

            // lastIndexOf():如果有一个参数,表示:从后向前查找匹配的字符并返回第一个匹配成功的字符下标
            inde = str4.lastIndexOf('o');
            // console.log(str4);
            // console.log(inde);

            // lastIndexOf():如果有两个参数,表示:第一个参数是要查找的字符,第二个参数表示查找的起始坐标。从起始坐标开始,向前查找匹配的字符
            inde = str4.lastIndexOf('o', 5);
            // console.log(str4);
            // console.log(inde);

3.Math对象(数学函数)

// 获取数据的最大值
            var max = Math.max(12,34,0,-1);
            console.log(max);
            // 获取数据中的最小值
            var min = Math.min(12, 34, 0, -1);
            console.log(min);

            // Math.ceil():向上取整,进一法
            console.log(Math.ceil(99.1));
            console.log(Math.ceil(99.5));

            // Math.floor():向下取整,去尾法
            console.log(Math.floor(99.1));
            console.log(Math.floor(99.5));

            // Math.round():四舍五入取整
            console.log(Math.round(99.1));
            console.log(Math.round(99.5));

            // Math.pow(x,y):求x的y次方
            console.log(Math.pow(2,2));
            // Math.sqrt():开平方运算
            console.log(Math.sqrt(4));
            // Math.abs(num):求绝对值
            console.log(Math.abs(-100));

4. bom浏览器对象模型

属性 描述
appCodeName 返回浏览器的代码名。
appMinorVersion 返回浏览器的次级版本。
appName 返回浏览器的名称。
appVersion 返回浏览器的平台和版本信息。
browserLanguage 返回当前浏览器的语言。
cookieEnabled 返回指明浏览器中是否启用 cookie 的布尔值。
cpuClass 返回浏览器系统的 CPU 等级。
onLine 返回指明系统是否处于脱机模式的布尔值。
platform 返回运行浏览器的操作系统平台。
systemLanguage 返回 OS 使用的默认语言。
userAgent 返回由客户机发送服务器的 user-agent 头部的值。
userLanguage 返回 OS 的自然语言设置。

1.bom对象:window对象,location对象,screen对象,history对象,navigator对象。
2.window对象
window.screenX/screenY主窗口的位置。
window.innerWidth/innerHeight浏览器宽度和浏览器的高度
window.open()打开新页面:参数一:要打开页面的url链接,参数二三可以省略。
系统对话框:alert(),prompt(),confirm().
定时器:setInteral(),setTimeout()
3.location对象
该对象中的属性和方法操作浏览器的url区域。
location.reload()没有参数时,从缓存中加载一遍页面。当参数为true时从服务器请求数据。
location.replace('url字符串')该方法修改页面,不会被历史记录保存。
4.screen对象(一般用于移动设备)
screen.availHeight:屏幕的高度减去系统部件高度的像素值。
scrern.availWidth:宽度
screen.height():屏幕高度
screen.width():屏幕的宽度
5.navigator对象(识别客户端浏览器的事实标准)

属性 描述
appCodeName 返回浏览器的代码名。
appMinorVersion 返回浏览器的次级版本。
appName 返回浏览器的名称。
appVersion 返回浏览器的平台和版本信息。
browserLanguage 返回当前浏览器的语言。
cookieEnabled 返回指明浏览器中是否启用 cookie 的布尔值。
cpuClass 返回浏览器系统的 CPU 等级。
onLine 返回指明系统是否处于脱机模式的布尔值。
platform 返回运行浏览器的操作系统平台。
systemLanguage 返回 OS 使用的默认语言。
userAgent 返回由客户机发送服务器的 user-agent 头部的值。
userLanguage 返回 OS 的自然语言设置。

5. dom

        // 什么是DOM:文档对象模型,一份html文件在js中就是一个DOM对象(document对象)
        // BOM是包含DOM的

        // 节点的概念:组成一份DOM文档的所有内容都是DOM的节点,包括但不仅限于:标签、空格、换行、注释、标签的属性、标签中嵌套的文本

获取标签

// 查询标签的范围是整个html文件,也就是在document范围中搜索指定的标签,所以要使用document对象调用相关查找方法。

        // 因为W3C协议规定id值唯一,所以通过id获取标签,只能获取一个标签,如果页面中出现同名id,则只获取匹配的第一个标签
        var pTag = document.getElementById('p');
        // console.log(pTag);


        // 通过标签名获取标签:可以获取到页面中所有的同名标签
        // 返回值是一个类似于数组的数据类型,把所有匹配到的标签按照先后顺序,利用下标管理起来。
        var aTags = document.getElementsByTagName('a');
        // console.log(aTags[0]);

        // 通过class名获取标签
        var linkTags = document.getElementsByClassName('link');
        // console.log(linkTags);


        // 通过name属性值获取input类型(form表单)的标签
        var inputs = document.getElementsByName('user');
        // console.log(inputs);


        // 通过标签的选择器获取标签
        // querySelector():不管页面中与参数匹配的标签有几个,只能拿到第一个匹配的标签
        var tag = document.querySelector('.link');
        // console.log(tag);

        // querySelectorAll():可以获取到页面中所有与参数匹配的标签
        var tags = document.querySelectorAll('.link');
        console.log(tags);

for循环添加事件

也可以把var i = 0改为let i = 0;这样每一回循环都会重新声明一个变量。
还可以用闭包解决。

// for循环给按钮添加事件
         for (var i = 0; i < btnTags.length; i++) {
             console.log(i);
             // 利用i充当数组数组下标,逐个获取按钮,并添加事件
             // 使用for循环给标签添加事件时,不能在事件函数中使用循环变量,因为当触发事件函数时,循环已经结束,循环变量已经变为最后一个数值了,点击任何按钮,访问到的循环变量都是同一个数字
             // 解决办法:给每一个标签添加一个属性,用这个属性存储该标签对应的下标值,在通过事件函数获取标签下表时,不能使用循环变量,而是通过该属性拿值。
             btnTags[i].box = i;
             btnTags[i].onclick = function () {
                 // 当点击事件触发时,执行该函数,获取按钮的下标,借助于当时新添加的属性获取(按钮下标和颜色下标是一一对应的)
                 var inde = this.box;
                contentTag.style.backgroundColor = colorArr[inde];
             }


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

推荐阅读更多精彩内容

  • 第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...
    mo默22阅读 1,171评论 0 5
  • 1.跳转语句 break:浏览器执行到break,直接跳出循环或判断语句,结束本语句 continue:语句的作用...
    2e9a10d418ab阅读 201评论 0 0
  • 有人说过,很多弯路到最后都成了直路,所有的坑到最后也都成了坦途;所谓的直路和坦途并不是摆在眼前的,都是不断的的...
    老衲法号一眉道人阅读 1,266评论 0 4
  • 清晨,漫步在校园的林荫小路上,玉兰花的芬芳弥漫在空气中沁人心脾,桃花依旧显得那么粉艳,一阵清风拂过,听到的是花瓣落...
    老兵日记阅读 294评论 0 4
  • 过去的人,有的不想遗忘,那么就在心里给他们留个位置,以示对这段记忆的尊重
    Eason_h阅读 202评论 0 0