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. 基于 HTML5 Canvas 的交互式地铁线路图

    前言 前两天在 echarts 上寻找灵感的时候,看到了很多有关地图类似的例子,地图定位等等,但是好像就是没有地铁线路图,就自己花了一些时间捣鼓出来了这个交互式地铁线路图的 Demo,地铁线路上的点是 ...

  2. Linux SendMail发送邮件失败诊断案例(四)

    最近又碰到一起Linux下SendMail发送邮件失败的案例,邮件发送后,邮箱收不到具体邮件, 查看日志/var/log/maillog 发现有"DSN: User unknown" ...

  3. vscode格式化Vue出现的问题

    一.VSCode中使用vetur插件格式化vue文件时,js代码会自动加上冒号和分号 本来就是简写比较方便舒服,结果一个格式化回到解放前 最后找到问题原因: 首先,vetur默认设置是这个样的.也就是 ...

  4. FusionCharts封装-Label

    Category.java: /** * @Title:Category.java * @Package:com.fusionchart.model * @Description:FusionChar ...

  5. vxWorks内核实现基本原理

    内核实现基本原理     VxWorks 内核维护三个队列:tick队列.ready 队列.active 队列.另外还有一个队列涉及任务,即任务等待资源时所处的队列,这个队列可以是VxWorks内核提 ...

  6. C#制表符过滤处理方法

    C#制表符过滤处理方法,动态替换字符串里面的制表符. /// <summary> /// Descrioption: ///需要替换字符集合,可参见MSDN /// The Trim me ...

  7. JavaScript去除日期中的“-”

    JavaScript去除日期中的"-" 1.说明 经常会出现这样的情况,页面的日期格式是:YYYY-MM-DD,而数据库中的日期格式是:YYYYMMDD,两者之间需要转换一下,方能 ...

  8. pat1091-1100

    1091bfs傻逼题,dfs会爆栈 #include<iostream> #include<cstdio> #include<cstring> #include&l ...

  9. js call的方法

    call 方法 请参阅 应用于:Function 对象 要求 版本 5.5 调用一个对象的一个方法,以另一个对象替换当前对象. call([thisObj[,arg1[, arg2[, [,.argN ...

  10. 浅析Unity中的Enlighten与混合光照

    0x00 前言 在Unity的5.6版本之前的5.x中,主要使用了Geomerics公司的Enlighten[1]来提供实时全局照明以及烘焙全局照明,在5.6之后Unity引入了新的Lightmapp ...