JavaScript基础大全篇

本章内容:

  • 简介
    1. 定义
    2. 注释
    3. 引入文件
  • 变量
  • 运算符
    1. 算术运算符
    2. 比较运算符
    3. 逻辑运算符
  • 数据类型
    1. 数字
    2. 字符串
    3. 布尔类型
    4. 数组
    5. Math
  • 语句
    1. 条件语句(if、switch)
    2. 循环语句(for、for in、while、do-while)
    3. label语句
    4. 异常处理
  • 函数
    1. 定义函数3种方式
    2. 函数参数(arguments)
    3. 作用域与作用链
    4. 闭包
    5. 面向对象(特性,构造模式,原型模式prototype)
    6. prototype 验证方法(isPrototypeOf、hasOwnProperty、in)
  • 其它
    1. 序列化
    2. 转义
    3. eval
    4. 正则表达式
    5. 时间处理

简介

定义

  javascript是一门动态弱类型的解释型编程语言,增强页面动态效果,实现页面与用户之间的实时动态的交互。

  javascript是由三部分组成:ECMAScript、DOM、BOM

  • ECMAScript由ECMA-262定义,提供核心语言功能(ECMA是欧洲计算机制造商协会)
  • DOM(Document Object Model)文档对象模型,提供访问和操作网页内容的方法和接口
  • BOM(Browser Object Model)浏览器对象模型,提供与浏览器交互的方法和接口

注释

JavaScript中代码注释:

  • 单行 //
  • 多行 /*  */

引入文件

1. 引入外部文件

?


1

<script type"text/javascript" src="JS文件"></script>

2. 存放在HTML的<head>或<body>中

?


1

2

3

<script type"text/javascript">

    Js代码内容

</script> 

  • HTML的head中
  • HTML的body代码块底部(推荐)

3. 为什么要放在<body>代码块底部?

  • HTML代码从上到下执行,先加载CSS,避免html出现无样式状态;
  • 将JavaScript代码块放在<body>最后,可以让网页尽快的呈现给用户,减少浏览者的等待时间,避免因为JS代码块阻塞网页的呈现。

变量

需要注意的是:局部变量必须以 var 开头申明,如果不写 var 则为全局变量

?


1

2

3

4

5

6

7

8

9

10

11

12

13

<script type="text/javascript">

 

    // 全局变量

    name = ‘nick‘;

 

    function func(){

        // 局部变量

        var age = 18;

 

        // 全局变量

        gender = "man"

    }

</script>

  

运算符

1. 算术运算符

一元算术
    +  一元加,数值不会产生影响 对非数值应用一元加运算时,会调用Number()转型函数对这个值进行转换
    -  一元减,转换为负数 ~
    ++  递增1 通过Number()转型为数字,再加1,再重新赋值给操作数值
    -- 递减1 ~
二元算术
    +  加法  
    -  减法  
    *  乘法  
    /  除法  
    %  取模  

1> 如果其中一个操作数是对象,则对象会转换为原始值:日期对象通过toString()方法执行转换,其他对象通过valueOf()方法执行转换。如果结果还不是原始值,则再使用toString()方法转换
2> 在进行了对象到原始值的转换后,如果其中一个操作数是字符串的话,另一个操作数也会转换成字符串,进行字符串拼接
3> 两个操作数都将转换成数字或NaN,进行加法操作

二元运算过程

2. 比较运算符

  ===  严格运算符 比较过程没有任何类型转换
  !==  严格运算符 ===的结果取反
  ==  相等运算符 如果两个操作值不是同一类型,相等运算符会尝试进行一些类型转换,然后再进行比较
  !=  不相等运算符 ==的结果取反
  >  大于运算符  
  >=  大于等于运算符  
  <  小于运算符  
  <=  小于等于运算符  

1> 如果两个值类型不同则返回false
2> 如果两个值类型相同,值相同,则返回true,否则返回false
3> 如果两个值引用同一个对象,则返回true,否则,返回false
console.log([] === []);//false
console.log({} === {});//false
var a = {};
b = a;
console.log(a === b);//true

严格运算符比较过程

对象类型和原始类型比较:
1> 对象类型会先使用valueOf()转换成原始值,如果结果还不是原始值,则再使用toString()方法转换,再进行比较(日期类只允许使用toString()方法转换为字符串)
2> 在对象转换为原始值之后,如果两个操作数都是字符串,则进行字符串的比较
3> 在对象转换为原始值之后,如果至少有一个操作数不是字符串,则两个操作数都将通过Number()转型函数转换成数字进行数值比较

注:如果一个值是null,另一个值是undefined,则返回true;
console.log(null == undefined);//true
如果一个值是null,另一个值是0,则返回tfalse;
console.log(null == 0);//false
空字符串或空格字符串会转成0
console.log(null == []);//false
console.log(null == ‘‘);//false
console.log([] == ‘ ‘);//false,相当于‘‘ == ‘ ‘
console.log([] == ‘‘);//true,相当于‘‘ == ‘‘
console.log(0 == ‘‘);//true

相等运算符比较过程

数字和字符串比较:
1> 如果操作值是对象,则这个对象将先使用valueOf()转换成原始值,如果结果还不是原始值,则再使用toString()方法转换
2> 在对象转换为原始值之后,如果两个操作数都是字符串,则按照unicode字符的索引顺序对两个字符串进行比较
3> 在对象转换为原始值之后,如果至少有一个操作数不是字符串,则两个操作数都转换成数字进行比较
console.log(‘B‘ > ‘a‘);//false
console.log(‘b‘ > ‘a‘);//true
console.log(9 > ‘2‘);//true

大于小于运算符比较过程

3. 逻辑运算符


!  非(两个!!表示Boolean()转型函数)

返回一个布尔值
    &&  与 两个操作都为true时返回true,否则返回false(返回值不一定是布尔值),可以多个连用(..&&..&&..)
    ||  或 两个操作都是false时返回false,否则返回true(返回值不一定是布尔值),可以多个连用(..||..||..)

?


1

2

3

4

5

6

7

8

9

10

11

//七个假值:

console.log(!!undefined);//false

console.log(!!null);//false

console.log(!!0);//false

console.log(!!-0);//false

console.log(!!NaN);//false

console.log(!!‘‘);//false

console.log(!!false);//false

console.log(!!{});//true

console.log(!![]);//true

1> 取代if语句
//前面条件成立则运行后面操作
(a == b) && dosomething();

2> 用于回调函数
//若没有给参数a传值,则a默认为undefined假值,所以不执行a()。
function fn(a){
    a && a();
}

&& 常用操作

1> 变量设置为默认值
//如果没有向参数a传入任何参数,则将该参数设置为空对象
function func(a){
    a = a || {};
}

|| 常用操作

  

数据类型

特殊值:

  • null     表示一个空对象指针,常用来描述"空值";
  • undefined  表示变量未定义。

1、数字(Number)

JavaScript中不区分整数和浮点数,所有数字均用浮点数值表示。

转换:

  • parseInt(..)    将某值转换成整数,不成功则NaN
  • parseFloat(..) 将某值转换成浮点数,不成功则NaN

特殊值:

  • NaN,非数字。可以使用 isNaN(num) 来判断。
  • Infinity,无穷大。可以使用 isFinite(num) 来判断。
Number 对数字的支持
Number.MAX_VALUE 最大数值
Number.MIN_VALUE 最小数值
Number.NaN 非数字
Number.NEGATIVE_INFINITY 负无穷大
Number.POSITIVE_INFINITY 正无穷大
Number.toExponential( ) 返回四舍五入的科学计数法,加参数为保留几位
Number.toFixed( ) 小数点后面的数字四舍五入,加参数为保留几位
Number.toPrecision( ) 四舍五入,自动调用toFixed()或toExponential()
Number.toLocaleString( ) 把数字转换成本地格式的字符串
Number.toString( ) 将数字转换成字符串
Number.valueOf( ) 返回原始数值

2、字符串(String)

String.length 字符串的长度
String.trim() 移除空白
String.trimLeft() 移除左侧空白
String.trimRight() 移除右侧空白
String.concat(value, ...) 拼接
String.slice(start, end) 切片
String.split( ) 分割
String.search( ) 从头开始匹配,返回匹配成功的第一个位置(g无效)
String.match( ) 全局搜索,如果正则中有g表示找到全部,否则只找到第一个
String.replace( ) 替换,正则中有g则替换所有,否则只替换第一个匹配项;

$数字:匹配的第n个组内容;

$&:当前匹配的内容;

$`:位于匹配子串左侧的文本;

$‘:位于匹配子串右侧的文本

$$:直接量$符号

String.charAt( ) 返回字符串中的第n个字符
String.charCodeAt( ) 返回字符串中的第n个字符的代码
String.fromCharCode( ) 从字符编码创建—个字符串
String.indexOf( ) 查找子字符串位置
String.lastIndexOf( ) 查找子字符串位置
String.localeCompare( ) 用本地特定的顺序来比较两个字符串
String.substr( ) 抽取一个子串
String.substring( ) 返回字符串的一个子串
String.toLocaleLowerCase( ) 把字符串转换小写(针对地区,在不知道程序在哪个语言环境中运行时用)
String.toLocaleUpperCase( ) 将字符串转换成大写(针对地区)
String.toLowerCase( ) 小写
String.toUpperCase( ) 大写
String.toString( ) 返回原始字符串值
String.toString() 返回原始字符串值
String.valueOf( ) 返回原始字符串值

\0 空字节
\n 换行
\t 制表
\b 空格
\r 回车
\f 进纸
\\ 斜杠
\‘ 单引号
\" 双引号

转义字符

3、布尔类型(Boolean)

true(真)和false(假)

toString() 返回Boolean的字符串值(‘true‘或‘false‘)
toLocaleString() 返回Boolean的字符串值(‘true‘或‘false‘)
valueOf() 返回Boolean的原始布尔值(true或false)

4、数组(Array)

?


1

2

var name = Array("nick","jenny");

var name = ["nick","jenny"];

  

Array.length 数组的大小
Array.push() 尾部添加元素
Array.pop() 删除并返回数组的最后一个元素
Array.unshift() 在数组头部插入一个元素
Array.shift( ) 在数组头部移除一个元素
Array.slice( ) 切片
Array.reverse( ) 反转
Array.join( ) 将数组元素连接起来以构建一个字符串
Array.concat( ) 拼接
Array.sort( ) 排序
Array 对数组的内部支持
Array.splice( start, deleteCount, value, ...)
插入、删除或替换数组的元素

obj.splice(n,0,val) 指定位置插入元素

obj.splice(n,1,val) 指定位置替换元素

obj.splice(n,1)    指定位置删除元素

Array.toLocaleString( ) 把数组转换成局部字符串
Array.toString( ) 将数组转换成一个字符串

5. Math

Math对象是一个静态对象,而不是构造函数。实际上,Math只是一个由Javascript设置的对象命名空间,用于存储数学函数。

作用是执行普通的算数任务。

常量

Math.E
常量e,自然对数的底数。

Math.LN10
10的自然对数。

Math.LN2
2的自然对数。

Math.LOG10E
以10为底的e的对数。

Math.LOG2E
以2为底的e的对数。

Math.PI
常量figs/U03C0.gif。

Math.SQRT1_2
2的平方根除以1。

Math.SQRT2
2的平方根。

静态函数

Math.abs( )
计算绝对值。

Math.acos( )
计算反余弦值。

Math.asin( )
计算反正弦值。

Math.atan( )
计算反正切值。

Math.atan2( )
计算从X轴到一个点的角度。

Math.ceil( )
对一个数上舍入。

Math.cos( )
计算余弦值。

Math.exp( )
计算e的指数。

Math.floor( )
对一个数下舍人。

Math.log( )
计算自然对数。

Math.max( )
返回两个数中较大的一个。

Math.min( )
返回两个数中较小的一个。

Math.pow( )
计算xy。

Math.random( )
计算一个随机数。

Math.round( )
舍入为最接近的整数。

Math.sin( )
计算正弦值。

Math.sqrt( )
计算平方根。

Math.tan( )
计算正切值。

Math 方法

语句

1、条件语句

JavaScript中支持两个条件语句,分别是:if 和 switch。

if 语句:

?


1

2

3

4

5

6

7

8

9

//if语句

if(条件){

 

    }else if(条件){

         

    }else{

 

    }

Switch 语句:

?


1

2

3

4

5

6

7

8

9

10

11

12

//switch语句,name等于nick是执行第一个case,等于第二个执行第二个case,其它执行default.

switch(name){

        case ‘nick‘:

            age = 18;

            break;

        case ‘jenny‘:

            age = 21;

            break;

        default :

            age = 0;

    }

  

2、循环语句

JavaScript中支持四种循环语句,分别是:for、for in、while、do-while

for 循环:

?


1

2

3

4

5

6

var names = ["nick", "jenny"];

 

for(var i=0;i<names.length;i++){

    console.log(i);    //索引

    console.log(names[i]);

}

for in 循环:

?


1

2

3

4

5

6

var names = ["nick", "jenny"];

for(var index in names){

    console.log(index);

    console.log(names[index]);

}

while 循环: 

?


1

2

3

4

while(条件){

    // break;

    // continue;

}

do-while 循环:

?


1

2

3

4

5

6

//循环的代码至少执行一次,结果为1

        var num = 0;

        do {

            num++;

        }while (num>10);

  

3. label语句

label 语句可以理解为跳出任意循环

//输出结果为95

    <script>
        var num = 0;
        for (var i=0;i<10;i++) {
            for (var j=0;j<10;j++) {
                if (i==5 && j==5) {
                    break;
                }
                num++;
            }
        }
        console.log(num);
    </script>

未加label实例

//输出结果为55
//i和j都循环为到5时,跳出了两层循环

    <script>
        var num = 0;
        outPoint:
        for (var i=0;i<10;i++) {
            for (var j=0;j<10;j++) {
                if (i==5 && j==5) {
                    break outPoint;
                }
                num++;
            }
        }
        console.log(num);
    </script>

加label实例

4. 异常处理

主动跑出异常 throw Error(‘xxxx‘)

?


1

2

3

4

5

6

7

8

9

10

try {

    //这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行

}

catch (e) {

    // 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。

    //e是一个局部变量,用来指向Error对象或者其他抛出的对象

}

finally {

     //无论上述代码怎么,finally代码块始终会执行

}

函数Function

函数定义的三种方式

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

// 普通函数

    function func(arg){

        return true;

    }

          

// 匿名函数

    var func = function(arg){

        return "nick";

    }

  

// 自执行函数

    (function(arg){

        console.log(arg);

    })(‘nick‘)

  

函数参数:

函数传参的个数可以小于实际需传参的个数,没传参的默认为undefined

参数传多默认不起作用

?


1

2

3

4

5

6

function man(name,age) {

    console.log(name,age);

}

man("nick",18); //nick 18

man("nick");    //nick undefined

man("nick",18,19);  //nick 18

arguments 可接收所有参数,返回一个数组

?


1

2

3

4

5

6

function man() {

    console.log(arguments);

}

man("nick",18); //["nick", 18]

man("nick");    //["nick"]

man("nick",18,19);  //["nick", 18, 19]

  

函数的作用域与作用域链:

JavaScript中没有块级作用域

?


1

2

3

4

5

6

7

8

9

10

11

12

        var name = ‘nick‘;

        (function Main(){

            console.log(name);//undefined

            if(1){

                var name = ‘jenny‘;

            }

            console.log(name);//jenny

        })();

        console.log(name);//nick

//输出结果第一个为undefined

//声明需提前(Hoisting),在JavaScript引擎“预编译”时进行,函数在被执行之前,会将其中的变量全部声明,而不赋值

作用域链

每个构造函数都有一个内部对象指针,指向原型对象,而原型对象也包含一个指向构造函数的指针。如此层层递进,形成作用域链条

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

        var name = ‘nick‘;

        function Main() {

            function F1(){

                var name = ‘jenny‘;

                console.log(name);//jenny

            }

            function F2() {

                console.log(name);//nick

            }

            F1();

            F2();

        }

        Main();

// 从内到外的优先级寻找

// F2() 的作用域链为 F2()-->Main()

  

闭包:

闭包就是能够读取其他函数内部变量的函数。

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

        function f1(){

        var n=1;

        Add=function(){

                    n++;

                };

        function f2(){

         console.log(n);

        }

        return f2;

        }

      var result=f1();

      result(); //1

      Add();

      result(); //2

//result就是闭包f2函数

//函数f1中的局部变量n一直保存在内存中,并没有在f1调用后被自动清除

闭包使函数中的变量都被保存在内存中,内存消耗大,所以少用闭包,否则会造成网页的性能低,在IE中可能导致内存泄露。

所以在退出函数之前,将不使用的局部变量全部删除。

面向对象

面向对象的三大特性:   封装:隐藏代码实现的细节,实现代码的模块化   继承:扩展已经存在的代码模块,实现代码重用   多态:接口的不同实现方式,实现接口重用

关键字:

this  代指此时的对象

new  创建对象时必须使用

构造函数模式:

?


1

2

3

4

5

6

7

8

9

10

11

function Foo (name,age) {

    this.Name = name;

    this.age = age;

    this.Func = function () {

        return this.Name + this.age

    }

}

var obj = new Foo("nick",18);

var ret = obj.Func();

console.log(ret);

var obj2 = new Foo("jenny",21);

上述模式把同样的函数封装到了不同对象,造成了内存浪费。

原型模式(prototype):

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

function Foo(name,age) {

    this.Name = name;

    this.Age = age;

}

Foo.prototype = {

    GetInfo: function () {

        var str = " is good";

        return this.Name + str;

    },

    Func: function () {

        return this.Name + this.Age;

    }

};

var obj = new Foo("nick",18);

console.log(obj.Name);//nick

console.log(obj.Age);//18

var ret = obj.GetInfo();

console.log(ret);//nick is good

var ret2 = obj.Func();

console.log(ret2);//nick18

var obj2 = new Foo("nick",18);

所有的构造函数的prototype属性都指向另一个对象(同一块内存地址),这个对象的所有属性和方法,都会被构造函数的实例继承。

 Prototype模式的验证方法

1.  isPrototypeOf() 

用来判断一个对象是否存在于另一个对象的原型链中

?


1

2

3

4

Foo.prototype.isPrototypeOf(obj)

true

Foo.prototype.isPrototypeOf(obj2)

true

  

2.  hasOwnProperty()

用来判断某一个对象(不包括原型链)是否具有指定属性。

?


1

2

3

4

obj.hasOwnProperty(‘Name‘)

true

obj.hasOwnProperty(‘Age‘)

true

  

 3. in运算符

判断某个实例是否具有某个属性

?


1

2

3

4

‘Name‘ in obj

true

‘Age‘ in obj

true

  

其它

 

1、序列化

  • JSON.stringify(obj)   序列化
  • JSON.parse(str)        反序列化

2、转义

  • decodeURI( )                   URl中未转义的字符
  • decodeURIComponent( )   URI组件中的未转义字符
  • encodeURI( )                   URI中的转义字符
  • encodeURIComponent( )   转义URI组件中的字符
  • escape( )                         对字符串转义
  • unescape( )                     给转义字符串解码
  • URIError                         由URl的编码和解码方法抛出

3、eval

JavaScript中的eval既可以运行代码也可以获取返回值

?


1

2

a = eval(‘1+1‘);

console.log(a); //2

  • eval()
  • EvalError   执行字符串中的JavaScript代码

4、正则表达式

?


1

2

3

var p = /nick/g;

console.log(p.test(‘nickjennynick‘)); // true

console.log(p.exec(‘nickjennynick‘)); // ["nick", index: 0, input: "nickjennynick"]

JavaScript中支持正则表达式,其主要提供了两个功能:

  • test(string)     用于检测正则是否匹配
  • exec(string)    用于获取正则匹配的内容

匹配模式:

  g:表示全局(global)模式,匹配所有字符串,不会匹配到第一项时停止

  i:表示不区分大小写(case-insensitive)模式

  m:表示多行(multiline)模式,到达一行文本末尾时还会继续查找下一行中是否存在匹配的项

括号分组:

?


1

2

console.log(/(n)(i)ck/.exec(‘nickjenny‘)); // console.log(/(n)(i)ck/.exec(‘nickjenny‘))

console.log(/(n)(i)ck{2}/.exec(‘nickkjenny‘)); // ["nickk", "n", "i", index: 0, input: "nickkjenny"]

元字符         名称              匹配对象
.             点号              单个任意字符(除回车\r、换行\n、行分隔符\u2028和段分隔符\u2029外)
[]            字符组             列出的单个任意字符
[^]           排除型字符组        未列出的单个任意字符
?             问号               匹配0次或1次
*             星号               匹配0交或多次
+             加号               匹配1次或多次
{min,max}     区间量词           匹配至少min次,最多max次
^             脱字符             行的起始位置
$             美元符             行的结束位置
|             竖线               分隔两边的任意一个表达式
()            括号               限制多选结构的范围,标注量词作用的元素,为反向引用捕获文本
\1,\2...      反向引用            匹配之前的第一、第二...组括号内的表达式匹配的文本

元字符

\d     数字,等同于[0-9]
\D     非数字,等同于[^0-9]
\s     空白字符
\S     非空白字符
\w     字母、数字、下划线,等同于[0-9A-Za-z_](汉字不属于\w)
\W     非字母、数字、下划线,等同于[^0-9A-Za-z_]

匹配规则简写

5、时间处理

时间操作中有两种时间:

  • 时间统一时间
  • 本地时间(东8区)

Date    操作日期和时间的对象
Date.getDate( )    返回一个月中的某一天
Date.getDay( )    返回一周中的某一天
Date.getFullYear( )    返回Date对象的年份字段
Date.getHours( )    返回Date对象的小时字段
Date.getMilliseconds( )    返回Date对象的毫秒字段
Date.getMinutes( )    返回Date对象的分钟字段
Date.getMonth( )    返回Date对象的月份字段
Date.getSeconds( )    返回Date对象的秒字段
Date.getTime( )    返回Date对象的毫秒表示
Date.getTimezoneOffset( )    判断与GMT的时间差
Date.getUTCDate( )    返回该天是一个月的哪一天(世界时)
Date.getUTCDay( )    返回该天是星期几(世界时)
Date.getUTCFullYear( )    返回年份(世界时)
Date.getUTCHours( )    返回Date对象的小时字段(世界时)
Date.getUTCMilliseconds( )    返回Date对象的毫秒字段(世界时)
Date.getUTCMinutes( )    返回Date对象的分钟字段(世界时)
Date.getUTCMonth( )    返回Date对象的月份(世界时)
Date.getUTCSeconds( )    返回Date对象的秒字段(世界时)
Date.getYear( )    返回Date对象的年份字段(世界时)
Date.parse( )    解析日期/时间字符串
Date.setDate( )    设置一个月的某一天
Date.setFullYear( )    设置年份,也可以设置月份和天
Date.setHours( )    设置Date对象的小时字段、分钟字段、秒字段和毫秒字段
Date.setMilliseconds( )    设置Date对象的毫秒字段
Date.setMinutes( )    设置Date对象的分钟字段和秒字段
Date.setMonth( )    设置Date对象的月份字段和天字段
Date.setSeconds( )    设置Date对象的秒字段和毫秒字段
Date.setTime( )    以毫秒设置Date对象
Date.setUTCDate( )    设置一个月中的某一天(世界时)
Date.setUTCFullYear( )    设置年份、月份和天(世界时)
Date.setUTCHours( )    设置Date对象的小时字段、分钟字段、秒字段和毫秒字段(世界时)
Date.setUTCMilliseconds( )    设置Date对象的毫秒字段(世界时)
Date.setUTCMinutes( )    设置Date对象的分钟字段和秒字段(世界时)
Date.setUTCMonth( )    设置Date对象的月份字段和天数字段(世界时)
Date.setUTCSeconds( )    设置Date对象的秒字段和毫秒字段(世界时)
Date.setYear( )    设置Date对象的年份字段
Date.toDateString( )    返回Date对象日期部分作为字符串
Date.toGMTString( )    将Date转换为世界时字符串
Date.toLocaleDateString( )    回Date对象的日期部分作为本地已格式化的字符串
Date.toLocaleString( )    将Date转换为本地已格式化的字符串
Date.toLocaleTimeString( )    返回Date对象的时间部分作为本地已格式化的字符串
Date.toString( )    将Date转换为字符串
Date.toTimeString( )    返回Date对象日期部分作为字符串
Date.toUTCString( )    将Date转换为字符串(世界时)
Date.UTC( )    将Date规范转换成毫秒数
Date.valueOf( )    将Date转换成毫秒表示

时间: 2024-10-01 04:53:43

JavaScript基础大全篇的相关文章

Javascript.01 -- Javascript基础

Javascript基础 1 聊聊Javascript 1.1 Javascript的历史来源 94年网景公司   研发出世界上第一款浏览器. 95年 sun公司   java语言诞生 网景公司和sun合作. Java+script   ===> javascript 1.2 W3c规范 ?结构标准        html ?表现标准   css ?行为标准      js 1.3 JavaScript和ECMAScript的关系 ECMAScript是一种由Ecma国际前身为欧洲计算机制造商协

javascript基础语法——词法结构

× 目录 [1]java [2]定义 [3]大小写[4]保留字[5]注释[6]空白[7]分号 前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫:而说它复杂,是因为要真正掌握它则需要数年时间.实际上,前端工程师很大程度上就是指javascript工程师.前端入门容易精通难,说的是前端,更指的是javascript.本文是javascript基础语法的第一篇——词法结构 与java关系 关于javascript有这样一个说法,java和jav

Javascript基础篇小结

Javascript基础篇小结 字数9973 阅读3975 评论7 喜欢28 转载请声明出处 博客原文 随手翻阅以前的学习笔记,顺便整理一下放在这里,方便自己复习,也希望你有也有帮助吧 第一课时 入门基础 知识点: 操作系统就是个应用程序 只要是应用程序都要占用物理内存 浏览器本身也是一个应用程序 浏览器本身只懂得解析HTML 调用浏览器这个应用程序的一个功能绘制 1.javascript介绍 JavaScript操作DOM的本质是=获取+触发+改变 目的:就是用来操作内存中的DOM节点 修改D

JavaScript基础细讲

JavaScript基础细讲 JavaScript语言的前身叫作Livescript.自从Sun公司推出著名的Java语言之后,Netscape公司引进了Sun公司有关Java的程序概念,将自己原有的Livescript 重新进行设计,并改名为JavaScript. JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言,有了JavaScript,可使网页变得生动.使用它的目的是与HTML超文本标识语言.Java 脚本语言一起实现在一个网页中链接多个对象,与网络客户交互作用,从而可

【javaScript基础】立即调用函数表达式

在javaScript中,每个函数被调用时,都会创建一个新的执行上下文.因为在一个函数里面定义的变量和函数只能在里面访问,在外面是不行的,上下文提供了一种很容易的方法来创建私有性. //makeCounter函数返回另外一个匿名函数,这个匿名函数能够访问到"私有"变量i, 好像有一点"特权"性. function makeCounter() { // i只能在makeCounter的里面被访问到 var i = 0; return function() { cons

一步步学习javascript基础篇(3):Object、Function等引用类型

我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂数据类型(即引用数据类型) Object类型 我们用的最多的引用类型就属object类型了,一般用来存储和传输数据是再好不过的.然,它的两种创建方式我们是否了解呢? 1.通过构造函数来创建 如: var obj = new Object(); 在js中的引用类型有个非常灵活的用法,可以动态的附加属性和赋值.

一个简单的、面向对象的javascript基础框架

如果以后公司再能让我独立做一套新的完整系统,那么我肯定会为这个系统再写一个前端框架,那么我到底该如何写这个框架呢? 在我以前的博客里我给大家展示了一个我自己写的框架,由于当时时间很紧张,做之前几乎没有完整的思考过我到底该如何去写这个框架,所以事后对于这个框架我有很多遗憾之处,当我重构过一次代码后我就没再做过任何重构操作的工作,因为我根本不想再去给它修修补补了,之所以有这个想法,就是我对我写的那个框架的基础架构不满意. 为什么不满意这个基础架构了?我们先来看看我当时封装框架的方式: (functi

【javascript基础】3、变量和作用域

原文:[javascript基础]3.变量和作用域 前言 这篇和大家说一下javascript中的变量和作用域,由于是将基础嘛,主要给大家捋一下知识,不想翻开书复习的道友可以看一下,打算刚开始学习javascript的同学可以扫一眼. PS:jQuery源码交流群( 239147101)等你来,群里高手云集,让我受益匪浅,尽量少灌水. 变量 javascript中有两种变量,分别是基本类型和引用类型,基本类型是Null,Undefined,String,Boolean,Number这五种,前面简

【javascript基础】8、闭包

原文:[javascript基础]8.闭包 前言 函数和作用域啥的我们前面已经了解了,现在就要学习闭包了,这是一个挺晦涩的知识点,初学者可能会感觉不好理解,但是高手都不不以为然了,高手就给我提点意见吧,我和新手一起来学习什么是闭包. 例子 先不说定义,先看一个题,看看大家能得出正确的结果不, function test(){ var arr = []; for(var i = 0;i<10;i++){ arr[i] = function(){ return i; } } return arr;