js语法

1. javascript数据类型

JavaScript拥有动态类型。这意味着相同的变量可用作不同的类型:有 字符串,数字, 布尔值, 对象, 数组,Undefined和Null

对象: 
var person={
firstname : "John",
lastname : "Doe",
id : 5566
};
对象属性有两种寻址方式:
name = person.lastname;
name = person["lastname"];
Undefinied: 表示这个变量并没有值(没这个变量)
Null: 表示这个变量的值为空

 

声明变量类型:可使用new关键字来对变量类型进行声明
var carname = new String;
var x= new Number;
var y= new Boolean;
var cars= new Array;
var person = new Object;

* JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象

2. JavaScript 对大小写是敏感的。

3. JavaScript 语句向浏览器发出的命令。语句的作用是告诉浏览器该做什么。 JavaScript 是脚本语言。浏览器会在读取代码时,逐行地执行脚本代码

4. javascript使用分号来分隔语句分号 ;

5. javascript在文本字符串中使用反斜杠对代码行进行换行

document.write("你好 \
世界!");

6. 注释: 单行注释以 // 开头  多行注释以 /* 开始,以 */ 结尾

7. 变量: 使用 var 关键词来声明变量

var carname; // 变量声明之后,该变量是空的(它没有值)既值是 undefined
var carname="Volvo"; // 声明且赋值

  可一条语句同时声明多个变量

var lastname="Doe", age=30, job="carpenter"; //效果等同于
var lastname="Doe"
var age=30
var job="carpenter";

  局部变量: 函数内部声明的变量(使用 var)是局部变量,只能在函数内部访问它。

  全局变量: 不在任何函数内声明的变量是全局变量,网页上的所有脚本和函数都能访问它

  生命周期: JavaScript 变量的生命期从它们被声明的时间开始。

       局部变量会在函数运行以后被删除。

       全局变量会在页面关闭后被删除。

* 若向未声明的变量中赋值:

carname="Volvo";// 将声明一个全局变量 carname,即使它在函数内执行。

8. javascript对象: JavaScript 对象是属性和方法的容器

// 对象方法
var person = {
name: 'tom',
age: 20,
behavior: function () {
console.log(this.name)
},
     behavior2: thisMethod // 另一种形式
};

 function thisMethod () {
    console.log('name');
 }

  

// 访问对象方法
function testGetObjectMethod () {
person.behavior();
     person.behavior2();
}

9. javascript作用域: 可理解为可访问变量的集合

在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象

window.myName = 'all can get'; // this variable can get everywhere

* 全局变量,或者函数,可以覆盖 window 对象的变量或者函数。 局部变量,包括 window 对象可以覆盖全局变量和函数。

10. javascript常用事件:

  HTML 事件是发生在 HTML 元素上的事情。

  HTML 事件可以是浏览器行为,也可以是用户行为。

常用事件: onclick, onchange, onmouseover, onmuseout, onkeydown, onload

11. javascript的字符串对象;

* 反斜杠是一个转义字符。 转义字符将特殊字符转换为字符串字符 eg: \"     \\    \n  \r

// 字符串属性
constructor 返回创建字符串属性的函数
length 返回字符串的长度
prototype 允许您向对象添加属性和方法

  

// 字符串方法
charAt() 返回指定索引位置的字符
charCodeAt() 返回指定索引位置字符的 Unicode 值
concat() 连接两个或多个字符串,返回连接后的字符串
fromCharCode() 将 Unicode 转换为字符串
indexOf() 返回字符串中检索指定字符第一次出现的位置
lastIndexOf() 返回字符串中检索指定字符最后一次出现的位置
localeCompare() 用本地特定的顺序来比较两个字符串
match() 找到一个或多个正则表达式的匹配
replace() 替换与正则表达式匹配的子串
search() 检索与正则表达式相匹配的值
slice() 提取字符串的片断,并在新的字符串中返回被提取的部分
split() 把字符串分割为子字符串数组
substr() 从起始索引号提取字符串中指定数目的字符
substring() 提取字符串中两个指定的索引号之间的字符
toLocaleLowerCase() 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLocaleUpperCase() 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLowerCase() 把字符串转换为小写
toString() 返回字符串对象值
toUpperCase() 把字符串转换为大写
trim() 移除字符串首尾空白
valueOf() 返回某个字符串对象的原始值

12. javascript的 运算符, 比较符, 条件语句, switch语句, for循环,  while循环, break和continue等可参照其他语言。

13. typeof 运算符

typeof "John"                // 返回 string
typeof 3.14 // 返回 number
typeof false // 返回 boolean
typeof [1,2,3,4] // 返回 object
typeof {name:'John', age:34} // 返回 object
* 在JavaScript中,数组是一种特殊的对象类型。 因此 typeof [1,2,3,4] 返回 object
typeof undefined // undefined
typeof null // object NaN 的数据类型是 number
数组(Array)的数据类型是 object
  • 日期(Date)的数据类型为 object
  • null 的数据类型是 object
  • 未定义变量的数据类型为 undefined

14. javascript的类型转换

全局方法 String() 可以将任何类型的数字,字母,变量,表达式转换为字符串
String(x) // 将变量 x 转换为字符串并返回
String(123) // 将数字 123 转换为字符串并返回
String(100 + 23) // 将数字表达式转换为字符串并返回
Number 方法 toString() 也是有同样的效果。
x.toString()
(123).toString()
(100 + 23).toString()
String(false) // 返回 "false"
String(true) // 返回 "true"
false.toString() // 返回 "false"
true.toString() // 返回 "true"
String(new Date()) // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
obj = new Date() obj.toString() 将字符串转换为数字
全局方法 Number() 可以将字符串转换为数字。
Number("3.14") // 返回 3.14
Number(" ") // 返回 0
Number("") // 返回 0
Number("99 88") // 返回 NaN
Number.parseInt();Number.parseFloat(); 将布尔值转换为数字
Number(false) // 返回 0
Number(true) // 返回 1 将日期转换为数字
d = new Date(); Number(d) // 返回 1404568027739
d = new Date(); d.getTime() // 返回 1404568027739

15. javascript变量提升。

16. javascript的严格模式: "use strict";  参照: http://www.runoob.com/js/js-strict.html

17. javascript自带的验证API

  1.方法:  checkValidity() 和 setCustomValidity()

<input id="id1" type="number" min="100" max="300" required>
<button onclick="myFunction()">验证</button> <p id="demo"></p> <script>
function myFunction() {
var inpObj = document.getElementById("id1");
if (inpObj.checkValidity() == false) {
document.getElementById("demo").innerHTML = inpObj.validationMessage;
}
}
</script>

  

  2. 属性: validity = (customError | patternMismatch | rangeOverflow | rangeUnderflow | stepMismatch| tooLong | typeMismatch | valueMissing | valid);  validationMessage  willValidate

<input id="id1" type="number" max="100">
<button onclick="myFunction()">验证</button> <p id="demo"></p> <script>
function myFunction() {
var txt = "";
if (document.getElementById("id1").validity.rangeOverflow) {
txt = "输入的值太大了";
}
document.getElementById("demo").innerHTML = txt;
}
</script>

18. javascript的viod(0)

<a href="javascript:void(0);">点我没有反应的!死链接</a>
<a href="#pos">点我定位到指定位置!</a>
<br>
...
<br>
<p id="pos">尾部定位点</p>

19. javascript的代码规范

  • 复杂语句的通用规则:

    • 将左花括号放在第一行的结尾。
    • 左花括号前添加一空格。
    • 将右花括号独立放在一行。
    • 不要以分号结束一个复杂的声明。
  • 通常运算符 ( = + - * / ) 前后需要添加空格:
  • 对象定义的规则:

    • 将左花括号与类名放在同一行。
    • 冒号与属性值间有个空格。
    • 字符串使用双引号,数字不需要。
    • 最后一个属性-值对后面不要添加逗号。
    • 将右花括号独立放在一行,并以分号作为结束符号。
  • 一般很多代码语言的命名规则都是类似的,例如:

    • 变量和函数为驼峰法( camelCase
    • 全局变量为大写 (UPPERCASE )
    • 常量 (如 PI) 为大写 (UPPERCASE )

    变量命名的几种规则: hyp-henscamelCase, 或 under_scores

JavaScript -- 知识点汇总的更多相关文章

  1. Javascript知识点汇总-初级篇

    JavaScript的数据类型都有什么? 基本数据类型:String,Boolean,Number,Undefined, Null 引用数据类型:Object(Array,Date,RegExp,Fu ...

  2. HTML+Css+JavaScript知识点汇总

    HTML 部分 HTML基础知识 1. HTML简介 HTML(Hypertext Markup Language),超文本标记语言,HTML利用各种标记来标识文档的结构以及标识超链接的信息.它是从S ...

  3. 前端开发 JavaScript 干货知识点汇总

    很多初学的朋友经常问我,前端JavaScript都需要学习哪些东西呀?哪些是JavaScript的重点知识啊? 其实做前端开发工程师,所有的知识点都是我们学习必备的东西,只有扎实的技术基础才是高薪的关 ...

  4. BBS项目知识点汇总

    目录 bbs项目知识点汇总 一. JavaScript 1 替换头像 2 form表单拿数据 3 form组件error信息渲染 4 添加html代码 5 聚焦操作 二 . html在线编辑器 三 . ...

  5. nginx几个知识点汇总

    WHY? 为什么用Nginx而不用LVS? 7点理由足以说明一切:1 .高并发连接: 官方测试能够支撑 5 万并发连接,在实际生产环境中跑到 2 - 3 万并发连接数.?2 .内存消耗少: 在 3 万 ...

  6. JavaScript知识点整理(一)

    JavaScript知识点(一)包括 数据类型.表达式和运算符.语句.对象.数组. 一.数据类型 1) js中6种数据类型:弱类型特性 5种原始类型:number(数字).string(字符串).bo ...

  7. python全栈开发 * 10知识点汇总 * 180612

    10 函数进阶 知识点汇总 一.动态参数 形参的第三种1.动态接收位置传参 表达:*args (在参数位置编写 * 表⽰接收任意内容) (1)动态位置参数def eat(*args): print(a ...

  8. 清华大学OS操作系统实验lab1练习知识点汇总

    lab1知识点汇总 还是有很多问题,但是我觉得我需要在查看更多资料后回来再理解,学这个也学了一周了,看了大量的资料...还是它们自己的80386手册和lab的指导手册觉得最准确,现在我就把这部分知识做 ...

  9. javascript知识点积累

    8年javascript知识点积累   08年毕业就开始接触javascript,当时是做asp.net发现很多功能用asp.net控件解决不了,比如checkbox单选,全选问题,自动计算总价问题, ...

随机推荐

  1. 压缩tar命令

    option z表示压缩,所以才有后面的.gz, c表示创建这个压缩包,v是可视,能看到其打包和压缩的过程,f表示文件 zcvf 命令格式为 先压缩后跟压缩的目录 tar zcvf /home/xia ...

  2. mac的一些小技巧

    切换到超级管理员: sudo -s: 让你很快的全屏之间进行切换!很方便!很实用! command+tab 今天的感觉到公司的每一个人员,对于mac的系统的使用都是非常的熟悉的,我还什么都不会. 我得 ...

  3. Redis进阶实践之十四 Redis-cli命令行工具使用详解第一部分

    一.介绍       redis学了有一段时间了,以前都是看视频,看教程,很少看官方的东西.现在redis的东西要看的都差不多看完了.网上的东西也不多了.剩下来就看看官网的东西吧,一遍翻译,一遍测试. ...

  4. Android Scheme协议与应用全解析

    URL Scheme 的作用 客户端应用可以向操作系统注册一个 URL Scheme,该 Scheme 用于从浏览器或其他应用中启动本应用. 通过指定的 URL 字段,可以让应用在被调起后直接打开某些 ...

  5. 吐槽版︱MRO-Microsoft R Open快捷键+界面识别+功能设置

    下载了之后,发现连运行(RUN键)在哪都不知道,蒙逼的在哪倒弄半天,都执行不了...问了别人,都说"ctrl+enter",但是我的电脑执行不了,于是今天就狠狠的一个一个按钮的点一 ...

  6. 事件CEvent的使用 .

    CEvent类的一个对象,表示一个"事件"--一个允许一个事件发生时线程通知另一个线程的同步对象.在一个线程需要了解何时执行任务时,事件是十分有用的.例如,拷贝数据到数据文档时,线 ...

  7. 奶瓶beini系统

    奶瓶(beini)这个系统,是一款基于 Tiny Core Linux 搭建的无线网络安全测试系统,当然由于它是用来安全测试的系统,因此在安全方面自然有着强大的功能.而且,这个系统非常简便易学,因此现 ...

  8. PHP学习笔记-POST

    $_POST 描述通过http POST方式提交的数据都会封装到$_POST数组中 有些数据的提交必须使用post 比如上传文件 Post get提交 的区别 安全性 数据传输大小 浏览器限制文本大小 ...

  9. 对于vxworks下硬盘驱动

    1.曾经看到帖子说vxworks5.5下没有sata驱动,vxworks6.6下有,这样的说法恐怕不正确,由 于俺在5.5下也运用运用了sata硬盘,请注重这里俺只是说运用运用,没有说运用运用了sat ...

  10. linux下测试磁盘的读写IO速度

    有时候我们在做维护的时候,总会遇到类似于IO特别高,但不能判定是IO瓶颈还是软件参数设置不当导致热盘的问题.这时候通常希望能知道磁盘的读写速度,来进行下一步的决策. 下面是两种测试方法:(1)使用hd ...