JavaScript初学者必备的小知识(全面),你值得拥有

前言

布兰登·艾奇(Brendan Eich,1964年),JavaScript的发明人,从2007年开始在Mozilla公司担任首席技术长官(Chief Technology Officer)。

JavaScript,俗称JS。是一种高级的、多范式、解释型的编程语言,是一门基于原型、函数先行的语言,它支持面向对象编程、命令式编程以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式,不支持I/O(比如网络、存储和图形等),但可以由它的宿主环境提供支持。它已经由ECMA(欧洲计算机制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器支持。

JS虽然语法和C、Java很像,但是JS是不需要编译的,它可以依赖浏览器,和环境无关,事件驱动javascript可以直接对客户的输入做出响应。

那么,JS是什么呢?比如,你用HTML写一个网页,但是没有一点点新颖,有点都不美观好看,这时该怎么办呢?恩,所以你想给它穿衣服,于是你就去学习了CSS。但是,这个时候,你又想和网页交互,比如你点击网页的按钮后,希望那个区域发生变化等,然后呢,你又学习了JS。那么JS能做什么呢?JS可以获取用户的动作,比如你点击了鼠标或者按键,JS可以获取你点击的状态,然后根据你点击的什么位置等等进行相应的动作,比如改变颜色等。当然,这只是JavaScript的其中一个功能。

JavaScript 实现是由以下 3 个不同部分组成的:核心(ECMAScript)、文档对象模型(Document Object Model,简称DOM)、浏览器对象模型(Browser Object Model,简称BOM)。

说了这么多废话,想必你应该清楚的了解到了JavaScript的重要性了。你也很迫不及待的想知道JS的功能了吧,不急,我们慢慢来细说。

首先得知道它的代码结构,如下:

JS和HTMLl的结合方式:

  • 使用标签在head中加入
  • 在script中引入外部文件

JS的数据类型和Java的一模一样,也是八大基本数据类型:

  • byte
  • short
  • int
  • long
  • float
  • double
  • char
  • boolean( true //数值等于1,false //数值等于0)

字符串相加相减操作:

var str="123"
alter(str+1);
    //1231
    相加--字符串连接
    
alter(str-1)
    //122
    相减--相减运算
NaN提示:表示不是一个数字

注意:JS定义变量是用var,不区分整数和小数

== 和 === 的区别:前者就是等于;后者是等于(检查值和类型)。

document.write()

  • 直接向页面输出的语句(吧内容显示在页面上
数组三种定义方式:
var i = [1,2,3]; var i = [1,true,"4"];
使用内置对象 Array对象

var arr = new Array(5);
arr[0] = 1;    
使用内置对象Array

var arr = new Array(3,4,5)
数组属性 length:获取数组长度
函数三种方式:
function 方法名(参数列表){
	方法体;
//返回值可有可无;
//参数列表不需要类型
//如function(a,b)
}
方法名();

匿名函数
var add = function(参数列表){
		方法体和返回值
}
add();

使用js的一个内置对象 Function
动态函数
var add = new Function("参数列表","方法体;返回值");
//var add = new Function("x,y","var sum;sum=x+y;return sum;");
// alter(add(2,5));

优化:
//var par = "x,y";
//var method = "var sum;sum=x+y;return sum;";
//var add = new Function(par,method);
//aletr(add(2,5));
全局变量和局部变量
-- 全局变量:在script标签里面定义一个变量,这个变量在页面中js部分都可以使用。
-- 局部变量:在方法内部定义一个变量,只能在方法内部使用。
String对象
属性 : length
API:BrowserScripting-JavaScript
方法:
    html相关
        bold(): 加粗
        fontcolor(): 设置字符串颜色
        fontsize(): 设置字体大小
        link(): 将字符串显示成超链接
        sub() sup(): 下标和上标

    java相关
        concat():连接字符串
        charAt():返回指定位置的字符串
        indexOf():返回字符串位置
        split():分割字符串成数组
        replace():替换字符串
        substr():从第几位开始,向后截取几位
        subString():从第几位开始,到第几位结束,但是不包含最后那以为
Array对象
创建数组
    var array = [1,2,"3"]
    var array = new Array(5);
    var array = new Array(1,2,"3")
    var array = []//创建空数组
    属性:length:数组长度

    方法:
        concat() 连接数组,将值返回给新数组
        join() 根据指定的字符分割数组
        push() 向数组末尾添加元素,返回数组的新的长度
            如果添加的是数组,此时吧数组当做一个字符串加进当前数组;
        pop() 表示删除最后一个元素,返回删除的那个元素
        reverse() 颠倒数组中的元素的顺序
Date对象
var date = new Date();
获取当前时间:
    var date = new Date();
转换为习惯格式:
    date.toLocaleString();
获取年:
    getFullYear();
获取月:
    getMonth(); 返回0-11
获取日:
    getDate();
获取星期:
    getDay() 返回0-6 星期天作为星期一的开始
获取小时:
    getHours();
获取分钟:
    getMinute();
获取当前秒:
    getSeconds();
获取当前毫秒数:
    getTime();
Math对象
属性:
    PI 返回圆周率
    E 自然对数地鼠

静态方法 直接通过类名调用:
    Math.ceil()向上舍入
    Math.floor() 向下舍入
    Math.round() 四舍五入
    Math.random() 得到0.0-1.0的随机数(伪)
        //0-9
        document.write(Math.floor(Math.random()) * 10);
    Math.max()最大值
    Math.min()最小值
    Math.pow(x,y);幂 x的y次方
关于JS函数重载
js中不存在重载:
但可以通过aruguments数组来模拟重载的效果
传进的菜蔬有aruguments接收
然后可以通过if判断aruguments.length()实现
JS全局函数
eval():吧javascript字符串当做脚本代码来执行
    var a = "alert('1234')";
    eval(a);//输出1234
Bom
浏览器对象模型:
navigator 获取客户机信息(浏览器信息)
    navigator.appName 显示浏览器的名称属性
    
screen 获取屏幕信息
    screen.width 宽度
    screen.height 高度
    
location 请求url地址
    location.href
        获取到请求的url地址
        
history 请求的url的历史记录
    history.back() 上一次html路径页面
     history.go(-1)
    history.forward() 下一次html路径页面
    history.go(1)
    history.go 加载history列表中的某一个具体页面
        实现浏览器页面上下一层页面
        
window js中顶层对象、浏览器窗口对象
    window.alert():弹出框显示内容
    window.confirm(提示内容):确认提示框
    window.prompt(提示内容,默认输入内容):输入对话框
    window.open("打开的新窗口的地址url","","矿口特征(宽,高)") :打开一个新的浏览窗口
    window.close():关闭窗口(浏览器兼容性差)
    计时器: 1s = 1000ms
        window.setInterval("js代码","毫秒数") 重复
        window.setTimeout("js代码","毫秒数") 单词
        window.clearInterval(setintervalID)
            清除setInterval定义的计时器
        window.clearTimeout(setTimeoutID)
        传入定时器方法返回的ID
DOM
document对象:
    属性:
    all[] 提供对文档中所有html元素的访问 ff不支持
    forms[] 返回对文档中所有Form对象英语
    body 提供对<body>元素的直接访问
    
    方法:
    getElementById()返回对拥有指定ID的第一个对象的引用
    getElementsByName()返回带有指定名称的对象集合
    getelementsByTagName() 返回带有指定标签名的对象集合
    write()向文档写html表达式或javascrept代码

当然光记光看是没有用的,得熟能生巧,多实战,多做练习。那么我们最后来简单的说一下JavaScript的常见问题吧。

  • prototype
    prototype.js是由Sam Stephenson写的一个javascript类库。该框架的设计思路巧妙,而且兼容标准的类库,能够帮助开发人员轻松建立有交互性良好的web2.0特性富客户端页面。
  • Jquery
    Jquery是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
  • Ext
    Ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了。主要包括data、widget、form、grid、dd、menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop),扩展性相当的好.可以自己写扩展,自己定义命名空间。主要包括三个大的文件:ext-all.css,ext-base.js,ext-all.js(包括所有的类库,您可以根据需要进行删减.官方网站提供这一接口),在引用ext类库的时候,这三个文件必不可少。它提供了丰富的,非常漂亮的外观体验,成为众多界面层开发人员的追捧!其核心的组件基本覆盖了我们构建富客户端的常用的组件。
发布了37 篇原创文章 · 获赞 20 · 访问量 2647

猜你喜欢

转载自blog.csdn.net/weixin_44598691/article/details/105040115
今日推荐