相关概念
JavaScript一种直译式脚本语言它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
Node是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。
作用:
- 嵌入动态文本于HTML页面。
- 对浏览器事件做出响应(点击,滑动,键盘输入)。
- 读写HTML元素(添加,修改,删除)。
- 在数据被提交到服务器之前验证数据。
- 检测访客的浏览器信息。
- 控制cookies,包括创建和修改等。
- 基于Node.js技术进行服务器端编程。[6]
- 基础语法
- 调试
- alert(内容) 在弹窗显示内容
- console.log(内容) 开发者工具console下查看内容,IE,safari不支持
- 定义变量
- var 变量名 = 变量值,var可省略
- 注释
- //
- /* */
- 数据类型
- number 所有数字
- object 对象类型 JS中array[ ],dict{ }也都是object类型
- string 字符串类型 用双引号" "或者单引号' '(建议用单引号)
- 字符串拼接
var str = '我是' + '小学生';
- 字符串拼接
- function 函数类型
- 定义函数
function 函数名(形参){
函数体
return 返回值
}
函数内部有一个数组arguments用于保存传进来的参数,所以形参表可以为空。需要调用参数时,直接在arguments里取
- 定义类
function run(){...}
var person = {
age = 10;
name = '小明'
walk = run;
//或者walk = function(){console.log(this.name + this.age + '岁')};
}
person.walk();
window
window.location.href:修改浏览器显示页面
所有的全局变量和全局属性都是window的属性this
(默认情况下)在对象函数中,this代表当前对象,否则,this代表windowDocument
document代表整个网页,iOS开发中的JS重点就在document
相关函数
document.getElementByID();//通过ID属性
document.getElementName();//通过Name属性
document.getElementClassName();//通过class属性
document.getElementTagName();//通过标签名
- JS中的闭包
<script>
window.onload = function(){
function anyFunc(){
//do something
}
//do something
}
</script>
- 匿名执行函数
<script>
;(function (){//前面加分号的作用是防止被别人的代码污染
//匿名执行函数
var name = 1;//这个写法的意义在于防止全局变量污染
var age = 10;
window.onload = function(){
function anyFunc(){
//do something
}
//do something
}
}());
</script>
- iOS开发中的JS应用
//利用webView执行JS代码
[webView stringByEvaluatingJavaScriptFromString:(nonnull NSString *)];
//webView每次发url请求都会调用该方法
//在url上拼接参数后在该方法中截取,可以实现取到图片路径等元素,调用相册保存等功能
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType