js基础杂记

  1. document.write();  //表示在当前页面上输出内容
  2. 如果<script>标签引入了外部文件,那么在这个script标签内就不能在执行其他script代码了。例如<script type="text/javascript" src="xxx.js"></script>的中间再写执行不到哦
  3. 如果要输出文本类型的</script>可以用&lt代替左尖括号(<),用&gt代替右尖括号(>)
  4. 用户定义的所有名字叫做标识符(或者变量名),标识符必须由数字、字母、下划线或者$符号组成(注意:不能以数字开头!)
  5. 标识符区分大小写,例如:age和AGE是两个不同的变量
  6. js是弱类型语言,变量起初被赋值成什么类型就是什么类型,不建议中途改变这个变量的类型
  7. 任何类型的数据和字符串类型数据做相加操作的时候,其他数据类型会自动转换成字符串类型进行字符串的拼接,此时相加操作不再是数学意义上的加法,而是表示拼接的意思
  8. 任何数据除了和字符串做相加运算外,与NaN做任何运算(减,乘,除)的结果始终为NaN。(NaN本身与NaN相加也为NaN),字符串如果是纯数字则转换成数字,否则转换成NaN,例如1-"-2"那么就为3,例如1-“-2a”就为NaN(NaN的意思是Not A Number非数字)
  9. 关系运算符,在等和不等的比较上,①如果一个操作数为布尔值,则将其转换为数值,false转换成0,true转换成1。②一个操作数为字符串,则比较之前将其转成数值再进行比较,例如alert(20 == "20");将返回true。③一个操作数为NaN,则==返回false,!=返回true,并且NaN和NaN也不相等哦。(NaN==NaN返回false)。
  10. 逻辑运算符 ①与:表达式1 && 表达式2 (短路操作:当表达式1为false,那么直接输出false,表达式2将不再判断执行)②或:表达式1 || 表达式2(短路操作:当表达式1为true时,表达式2将不会再判断执行)③非:! 也就是将操作数转换程布尔值后再取反的操作,如果操作数是一个空字符串,返回true(即 alert(!"") ),如果操作数是非空字符串,则返回false,如果操作数是0,则返回true(即 alert(!0)),如果操作数是任何非0的数字(包括Infinity),那么都返回false,如果操作数是NaN,那么非运算返回true,如果操作数是undefined,那么非运算符返回true。
  11. 进制转换:①十进制转换成二进制:除2取余,倒序排列。②二进制转8进制:从右向左,每三位一组,不足三位使用0补齐,再将每组数转换成10进制。③二进制转十六进制:从右向左,每四位一组,不足四位使用0补齐,再将每组数转换成10进制。
  12. 在书写分支语句的时候,一般把出现概率较大的情况要写在前面(为了降低资源消耗,让大概率的情况先执行到)。
  13. arguments:在每一个函数内,都有一个内置的数组,是一个变量,叫做arguments,arguments可以存储当前函数传入的所有参数,而且,是通过传参的顺序进行排列的。要访问arguments里面的数据,需要通过对应的下标进行访问(例如arguments[0])。
  14. arguments.length 输入传入参数的个数。
  15. 作用域就是起作用的范围,或者说是有效范围,每一个函数的声明都会形成一个作用域。全局作用域声明的变量叫全局变量,局部作用域声明的变量叫局部变量,局部变量的生命周期和生效范围,仅限于声明该变量的函数区域。当函数调用完以后就直接销毁。如果全局作用域和局部作用域变量重名,我们就采取就近原则,当前访问这个变量离哪个作用域近,就是哪个作用域范围。
  16. 函数的递归调用。方法:①首先找临界值,既无需计算就可以获得的值。②找出这一次和上一次的关系。③假设当前函数已经可以使用了,调用自身计算上一次的运行结果,再写出这次的运行结果。特点:①必须有参数。②必须有return。
    例如:计算1~100的和,分析入下:1为无需计算就可以获得的值。第100次和第99次的关系是,99次的和再加上100。代码如下:

    			function sum(n){
    				if(n == 1){
    					return 1;
    				}
    				return sum(n-1) + n;
    			}
    			alert (sum(100));
  17. 我们可以通过document.getElementById找到符合条件的标签节点,然后可以用时间驱动函数,给当前的按钮绑定一些列操作,完成交互。
  18. arr.length代表数组的长度(数组元素个数),其中length属性不止是只读,还能进行设置,比如:
    var arr = ["red","blue","black"];
    alert(arr.length);  //输出3
    arr.length = 2;
    alert(arr.length);  //输出2
  19. 数组元素的访问和赋值,是通过下标完成的,下标就是索引,从0开始,下标最大的取值是长度-1(length -1),下标可以是变量或者表达式,例如:
    var arr = [10, 20, 30, 40, 50];
    alert(arr[1+2]);  //输出40,相当于取arr[3]的值。
  20. 使用for in 进行数组遍历,例如:
    var arr = ["red","blue","black"];
    for(var i in arr){
        document.write(arr + ",");    //输出red,blue,black
    }
  21. 数组中的方法:①【格式】 数组.push() 【功能】给数组末尾添加元素 【参数】一个或多个 【返回值】添加元素后,数组的长度。例如:

    var arr = ["钢铁侠", "雷神", "绿巨人"];
    arr.push("蜘蛛侠","快银");
    alert(arr);    //输出钢铁侠,雷神,绿巨人,蜘蛛侠,快银
    =============================================
    var arr = ["钢铁侠", "雷神", "绿巨人"];
    var res = arr.push("蜘蛛侠","快银");
    alert(arr);    //输出钢铁侠,雷神,绿巨人,蜘蛛侠,快银
    alert(res);   //返回 5 ,即添加元素后,数组的长度。
    =============================================
    ②【格式】数组.pop()【功能】移除数组末尾的最后一个元素【返回值】移除的元素。【参数】无。例如:
    var arr = ["钢铁侠", "雷神", "绿巨人"];
    var res = arr.pop();
    alert(arr);    //输出钢铁侠,雷神
    alert(res);   //输出绿巨人
    =============================================

    shift() 【格式】数组.shift();功能,从数组的头部取下一个元素,返回值为取下的元素。

    var arr = ["美队", "钢铁侠", "寡姐"];
    var res = arr.shift();
    alert (arr);    //输出钢铁侠,寡姐
    alert (res);    //输出美队
    =============================================
    unshift();【格式】数组.unshift();给数组头部添加元素【参数】一个或多个 【返回值】添加元素后,数组的长度。

    var arr = ["美队", "钢铁侠", "钢铁侠"];
    var res = arr.unshift("蜘蛛侠");
    alert(arr);    //输出蜘蛛侠,美队,钢铁侠,寡姐
    alert(res);    //输出4
    =============================================
    ④concat() 【功能】将两个数组合并成一个数组,源数组不会被改变【格式】数组1.concat(数组2)【返回值】合并好的新数组【参数】要合并的数组,例如:

    var arr1 = ["美队", "绿巨人", "寡姐"];
    var arr2 = ["蜘蛛侠", "钢铁侠"];
    var arr3 = arr1.concat(arr2);
    alert(arr3);    //输出美队,绿巨人,寡姐,蜘蛛侠,钢铁侠
    alert(arr1);    //输出美队,绿巨人,寡姐
    alert(arr2);    //输出蜘蛛侠,钢铁侠
    =============================================

    slice();
    【格式】数组.slice(start, end);
    【功能】:基于当前数组获取指定区域元素并创建一个新数组。原数组不改变。
    【参数】:start开始获取区域的下标,end获取结束区域的下标,注意,获取的范围不包括end下标位置的元素。
    【返回值】:指定区域元素生成的新数组。例如:

    var arr = ["钢铁侠", "美国队长", "绿巨人", "寡姐"];
    var arr2 = arr.slice(1,3);
    alert(arr2); //输出美国队长,绿巨人
    alert(arr); //输出钢铁侠,美国队长,绿巨人,寡姐
    =====================================================

    splice();
    可以完成对数组元素的删除、插入、替换操作。
    【格式】:数组.splice(start, length, 元素...)
    【参数说明】:(参数1 截取的开始下标) (参数2 截取(删)的长度)(参数3 在截取的开始下标位置,我们要插入的元素,插入元素的个数随意。)
    【注意】:splice()会对源数组进行修改。
    【返回值】:截取掉的元素,组成的数组。例如:

    //删除数组中的元素
    var arr1 = ["美国队长", "钢铁侠", "寡姐", "绿巨人"];
    var arr2 = arr1.splice(1,1);
    alert(arr1); //输出美国队长,寡姐,绿巨人(钢铁侠删除了)
    alert(arr2); //输出钢铁侠
    ==================================================

    //替换数组元素(也就是先删除,再插入)
    var arr1 = ["美国队长", "钢铁侠", "寡姐", "绿巨人"];
    var arr2 = arr1.splice(1,2,"蜘蛛侠","鹰眼");
    alert(arr1); //输出美国队长,蜘蛛侠,鹰眼,绿巨人(钢铁侠和寡姐被替换成两个新英雄)
    alert(arr2); //输出钢铁侠,寡姐
    ==================================================

    //插入数组元素
    var arr1 = ["美国队长", "钢铁侠", "寡姐", "绿巨人"];
    var arr2 = arr1.splice(1,0,"蜘蛛侠","鹰眼");
    alert(arr1); //输出美国队长,蜘蛛侠,鹰眼,钢铁侠,寡姐,绿巨人(下标为1的开始位置成功插入了两个英雄)
    alert(arr2); //输出null

    ===============================================

    join();
    【格式】:数组.join(拼接符);
    【功能】:使用拼接符将数组中元素拼接成字符串;
    【参数】:拼接符
    【返回值】:拼接好的字符串
    【注】:原数组不改变

    var arr = [10, 20, 30];
    var res = arr.join("&");
    alert(res);    //输出10&20&30
    alert(arr);    //输出10,20,30
    ======================================================

  22. 数组的排序:
    sort();

    【格式】:数组.sort();
    【功能】:将数组中的元素升序排序。
    【注意】:sort()模式是按照字符串进行排序

    var arr = [5, 4, 2, 3, 1];
    var pai = arr.sort();
    alert(pai);    //输出 1,2,3,4,5
    =================================
    var arr = [10, 1, 5, 15];

    var pai = arr.sort();
    alert(pai);    //输出1,10,15,5,原因是因为sort()模式是按照字符串排序
    【一般情况下,我们需要自己编写排序的算法,系统提供的排序函数,用的比较少】
    ==========================================================================

    ①冒泡排序

    var arr = [9, 8, 7, 6, 5, 4];
    for(var i = 0; i < arr.length; i++){
    for(var j = 0 ; j < arr.length - i -1; j++){
    if(arr[j] > arr[j + 1]){
    var middle = arr[j+1];
    arr[j+1] = arr[j];
    arr[j] = middle;

    }
    }
    }
    alert(arr);    //输出4,5,6,7,8,9
    =================================================
    ②选择排序:
    通过比较先选出最小的数放在第一的位置上,然后在其余的数中选择次小数放在第二的位置上,以此类推,直到所有的数形成有序数列。

    var arr = [9, 8, 7, 6, 5, 4];
    for(var i = 0; i < arr.length - 1; i++){
    for(var j = i + 1; j < arr.length; j++){
    if(arr[i] > arr[j]){
    var tmp = arr[i];
    arr[i] = arr[j];
    arr[j] = tmp;
    }
    }
    }
    alert(arr);    //输出4,5,6,7,8,9
    ====================================================

  23. 关于数组 复合数据类型(也叫引用数据类型)在计算机中存储的一些说明:
    先来看一个单变量的例子:
    var i = 10;
    function show(i){
    i = 5;
    alert(i);
    }
    alert(i); //输出10;
    show(i); //输出5;
    alert(i); //输出10;
    在这个例子中,由于变量的作用域关系,所以尽管第二个函数执行后,起作用的范围仅限该函数内部,执行完立即被释放掉,所以第三次输出仍然为10.
    而在下面的例子中:
    var arr = [10,20];
    function show(arr){
    arr.push(30,40);
    alert(arr);
    }
    alert(arr); //输出10,20
    show(arr); //输出10,20,30,40
    alert(arr);//输出10,20,30,40
    根据输出结果,我们可以知道:
    所有的复合类型(数组、对象object)都不直接存储在我们的函数中,是存储在内存的一个堆区域,在堆区域,可以任意分配内存空间,所有的符合类型数据,存储的都是门牌号(地址),这个类型的数据也叫做引用数据类型。
    ==========================================================
  24. 字符串:通常用常量来创建字符串,例如:var str = "hello";
    ①获得字符串的个数,【格式】字符串.length。例如:
    var str = "hello"; alert(str.length);   //输出5
    ==========================================


    访问字符串中的某个字符:charAt();
    var str = "hello";
    alert(str.charAt(1)); //输出e
    也可以通过另外一种简写方式alert(str[1]);访问输出e
    ==========================================
    注意:

    Ecmascript中字符串是不可变的,也就是说,字符串一旦创建,他们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。例如:
    var str = "hello";
    str[1] = "x";
    alert(str); //输出仍然为hello,如果要改变,那只能整体重新赋值,var str = "hxllo";
    ================================================

    +号可以作为字符串拼接符存在
    var str = "hello";
    alert(str + "world");//输出helloworld

  25. 关于字符串的函数:

    charCodeAt();
    【格式】:字符串.charCodeAt(下标);
    【返回值】:返回字符串中对应下标字符的ASCII码值

    var str = "hello";
    alert(str.charCodeAt(1)); //输出101;
    =============================================

    String.fromCharCode(ASCII码值);
    【参数】:ASCII值,个数任意
    【返回值】:ASCII码对应字符组成的字符串
    var str = String.fromCharCode(97,98,99);
    alert(str); //输出abc
    ================================================

    concat();
    可以用于对字符串进行拼接操作,注意,对原有字符串没有影响。
    var str1 = "hello";
    var str2 = "world";
    alert(str1.concat(str2)); //输出heloworld
    alert(str1); //输出hello
    alert(str2); //输出world
    一般情况下很少用concat拼接,直接用字符串拼接符+
    ==================================================

    indexOf();
    【格式】:字符串.indexOf(子串,开始查找的位置);
    【返回值】:如果在字符串中找到了子串第一次出现的位置,返回子串出现的位置,否则没有查找到返回 -1;

    var str = "abcabcabc";
    alert(str.indexOf("abc")); //输出0
    alert(str.indexOf("abc",1)); //从第一位开始查找,直至第三位找到,所以输出3
    alert(str.indexOf("abcd")); //输出-1,没找到
    ===================================================

    lastindexOf();
    【格式】:字符串.lastIndexOf(子串);
    【返回值】:如果在字符串中找到了子串最后一次出现的位置,返回子串出现的位置,否则没有查找到返回 -1;

    var str = "abcabcabc";
    alert(str.lastIndexOf("abc")); //输出6
    ===================================================

    search(子串/正则); 参数可以是正则表达式
    正则表达式用//开始和结束,还可以添加修饰符,比如 i 表示忽略大小写, g 表示全局匹配。

    var str = "Abcabcabc";
    alert(str.search("abc")); //js大小写敏感,输出3(从第4位才开始匹配到)
    alert(str.search(/abc/i)); //输出0(第1位就找到了,因为使用了正则修饰符i,使其忽略大小写);注意此处,如果启用正则,那么双引号就不需要了。
    ======================================================

    replace();
    【格式】:字符串.replace(匹配的字符串/正则表达式,替换成的新字符串);
    【返回值】:替换完成以后新生成的字符串。
    var str = "how are you";
    alert(str.replace("are","old are")); //输出how old are you
    alert(str); //依然还是输出how are you 注意之前讲过的字符串不能被修改,只能被重新创建。

    再来看一个例子:

    var str = "how Are are you";
    alert(str.replace("are","old are")); //只能匹配小写的are
    alert(str.replace(/are/ig,"old are")); //正则匹配了全局和忽略了大小写,输出how old are old are you
    ============================================================

    substring();
    【格式】:字符串.substring(start,end);
    【作用】:字符串提取,在指定范围内,提取字符串,生成新字符串。
    【返回值】:生成新的字符串。
    【注意】:不包含结束位置

    var str = "helloworld";
    alert(str.substring(2,4)); //输出ll
    ============================================================

    split();字符串分割
    【格式】:字符串.split(分隔符,生成的结果的个数);
    【返回值】:通过分隔符,分割成的装有子串的数组。
    var str = "This is a box";
    var arr = str.split(" ");
    alert(arr);//按照空格,分割成了单个单词
    ===================================
    var str = "This is a box";
    var arr = str.split(" ",2);
    alert(arr);//只输出this和is

    注意:分隔符是作为一个整体进行计算的,例如:

    var str = "This is a box";//this两个空格is一个空格a一个空格box
    var arr = str.split(" ");//两个空格
    alert(arr);//按照两个空格,分割成了This和is a box;
    ==========================================
    再例如:
    var str = "This is a box";//this两个空格is一个空格a一个空格box

    var arr = str.split(" ");//一个空格
    alert(arr);//输出this,,is,a,box(分出一个空字符串)
    ====================================
    再例如

    var str = "This is a box";//this两个空格is一个空格a一个空格box
    var arr = str.split("");//空字符串(没有空格)
    alert(arr);//逐个进行分割输出,t,h,i,s,,,i,s,,a,,b,o,x
    ====================================

  26. 从字符串到数组,可以使用split();    从数组到字符串可以使用join();

    var str = "This is a box";
    var arr = str.split(" ");
    alert(arr);
    alert(arr.join("&"));

    ====================================================

  27. var str = "This is A box";
    alert(str.toLowerCase());  //输出小写
    alert(str.toUpperCase());  //输出大写
    ====================================================

原文地址:https://www.cnblogs.com/sunvenet/p/10827047.html

时间: 2024-09-30 23:55:19

js基础杂记的相关文章

【 js 基础 】Javascript “继承”

是时候写一写 "继承"了,为什么加引号,因为当你阅读完这篇文章,你会知道,说是 继承 其实是不准确的. 一.类1.传统的面向类的语言中的类:类/继承 描述了一种代码的组织结构形式.举个例子:"汽车"可以被看作是"交通工具"的一种特例.我们可以定义一个 Vehicle 类和一个 Car 类来对这种关系进行描述.Vehicle 的定义可能包含引擎.载人能力等,也就是 所有交通工具,比如飞机.火车和汽车等都有的通用的功能描述.在对 Car 类进行定义的

js基础--javascript基础概念之语法

掌握一门语言 必须先掌握它的语法! javascript 的语法和C.Java.Perl 的语法有些相似.但是比它们更加宽松. javascript 中的一切都是严格区分大小写的.例如变量: demo 和 Demo 两个变量是完全不同的. javascript 标示符,所谓标示符 是指 变量.函数.属性 的名字或函数的参数.标示符的格式是按照以下规则组合的一个或多个字符. 1.第一个字符必须是字母,下划线,或 $ 符号. 2.其他字符可以是字母.下划线.$ . 或数字. 注意 不能把关键字 保留

js基础知识总结(2016.11.1)

js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避免全局变量和方法(命名空间,闭包,面向对象),模块化(seaJs,requireJs) 常用内部类:Data Array Math String HTML属性,CSS属性HTML:属性.HTML属性="值":CSS:对象.style.CSS属性="值"; class和f

JS基础(超级简单)

1     JS基础(超级简单) 1.1 数据类型 1.1.1   基本类型: 1)        Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2)        string 3)        boolean 4)        null 5)        undefined 1.1.2   复杂类型 object:date,array,function 1.2 变量 var 变量名=值 变量的作用域:1.全局:以页面为单位.2局部:以函数为单位.

js基础--javascript基础概念之数组(二)

js基础--javascript基础概念之数组 数组栈方法 数组可以像栈一样.栈是一种先进后出的数据结构,最先添加的数据最后一个出来.栈方法添加数据也称为 推入  移除数据称为 弹出. js为数值栈方法提供了 push()   和  pop() ;  两个方法. push() push() 方法接受参数就是你要添加进入到数组的值.push()  方法会将他们逐一添加到数组的末尾  数组的length属性会跟着更新数据. *push(多个数组元素值) 返回的修改后的数组长度 var array =

js基础--javascript基础概念之数组

js基础--javascript基础概念之数组 在ECMAScript 中 ,数组是很常用的数据类型,js中的数组和其他很多语言的数组有明显的区别.js的数组可以保持任何类型的数值,一个数组中可以保存着多个不同类型的数值.js数组大小(长度)是可以调整的.可以随着数据的添加自动增长数组长度. 创建数组: 一.数组字面量 数组字面量由一对包含数组项的方括号[]表示. var array = [ 'kin', 'cheong', 'change', 'hello', 'haha', 'hi' ];

js基础--javascript基础概念之语句(二)

js基础--javascript基础概念之语句(二)label,break,continue.. break .  continue 语句. break  continue 语句用于在循环中精确控制代码的执行,其中break语句会立即退出循环,执行循环后面的语句. continue 则退出循环后返回到再次进入循环中. 如: var num = 0; for(var i = 0; i<=100; i++){ if(i >= 10){ break; } num = i; } alert(num);

JS基础知识回顾:引用类型(一)

在ECMAScript中引用类型是一种数据结构,用于将数据和功能组织在一起,而对象时引用类型的一个实例. 尽管ECMAScript从技术上讲是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构,所以虽然说引用类型与类看起来想死,但他们并不是相同的概念. 不过引用类型有的时候也可以被称为对象定义,因为他们描述的是一类对象所具有的属性和方法. 新对象是使用new操作符后跟一个构造函数来实现的,构造函数本身就是一个函数,只不过该函数时处于创建新对象的目的而定义的. ECMASc

JS基础(一)

01-JS中的变量和输入输出 一.[使用JS的三种方式] 1.在html标签中直接内嵌js.(不提倡使用,不符合w3c关于内容与行为分离的要求) 2.在html页面中使用<script></script>包裹js代码.(Script标签可以放到页面的任何位置) <script type="text/javascript"> js代码 </script> 3.引入外部的js文件,使用script标签 <script type=&quo