javaScript


初识javaScript

js组成

1.ecmaScript
2.dom
3.bom

javascript语法

js函数

  • isNaN 判断是否是数字
var x = 1000 / "Apple";
isNaN(x); // 返回 true
var y = 100 / "1000";
isNaN(y); // 返回 false
  • typeof 返回数据类型
var x = 1;
console.log(typeof x); 返回number
  • arguments 获取所有实参
function getAgs(arg1) {
    console.log(arg1);
    console.log(arguments);
    for (const age of arguments) {
        console.log(age);
    }
}
getAgs(1, 2, 3);

js对象

创建对象
  • 自面量创建对象

    var obj={};
    var obj = {uname : '张三',age : 23,
        sayHi : function(){
            console.log('holle !!!');
        }
    };
    
  • new 创建对象

使用对象
console.log(obj.age);
console.log(obj['age']);

数据类型转换

  • 1.转化为字符串
var number = 10;
var str = number.toString();
str = String(number);
str = "" + number;
  • 2.转化为number
var strAge = 23;
var age = parseInt(strAge);//取整,去末尾字符串
age = parseFloat(steAge);//去末尾字符串
age = Number(strAge);
age = strAge - 0;

逻辑运算符

短路运算

1.逻辑与
  • 语法: 表达式1 && 表达式2

  • 表达式1为真,返回表达式2

  • 表达式1为假,返回表达式1
    ```
    console.log(1 && 2); 方法2
    console.log(0 && 2); 返回0

注意: 0 ‘’ null undefined NaN 是假的,其余都是真的

##### 2.逻辑或

* 语法: 表达式1 || 表达式2
* 表达式1为真,返回表达式1
* 表达式1为假,返回表达式2

console.log(1 || 2); 方法1
console.log(0 || 2); 返回2

注意: 0 ‘’ null undefined NaN 是假的,其余都是真的


#### 赋值运算符

var num = 1;
num ++ ; //2
num += 1; //2
num *= 1; //1
num -= 1; //0


#### 运算符优先级

![](img/运算符优先级.jpg)

## dom

### 1.对节点得真删改查

####     查

#####         查看元素节点

* domument ->代表整个文档
* domument.getElementById() ->通过元素id获取节点,ie8及以下浏览器id不区分大小写,而且也返回匹配name元素
* docment.getElementsByTagName() ->通过标签名获取
* docment.getElementsByName() ->通过name属性获取,需注意,只有部分标签name 属性生效
* docment.getElementsByClassName() ->通过class属性获取,ie8及以下版本不支持
* querySelector()  ->css选择器  不实时 ie7及以下没有
* querySelectorAll()   ->css选择器   不实时  ie7及以下没有

##### 遍历节点数

* parentNode  -> 父节点
* childNodes -> 子节点 数组
* firstNode -> 第一个子节点
* lastNode -> 最后一个节点
* nextSibling -> 下一个兄弟节点
* previousSibling -> 上一个兄弟节点

##### 遍历元素节点数

* parentElement -> 父元素节点
* children ->子元素节点
* childElementCount === children .length ->获取子节点的个数
* firstElementChild -> 第一个子元素节点
* lastElementChild -> 最后一个子元素节点
* nextElementSibling -> 下一个兄弟节点
* previousElementSibling -> 上一个兄弟节点

##### 节点的4个属性

* nodeName -> 元素标签的名称
* nodeValue -> text节点或Comment节点的文本内容,可读写
* nodeType -> 该节点的类型,只读
* attributes -> Element节点的属性集合

##### 节点的一个返回

* hasChildNodes()  ->  有没有子节点

#### 增

##### 创建节点

* createElement()  ->  创建节点

* createTextNode() -> 创建文本节点

* createComment() -> 创建注释节点

##### 插入节点

* appendChild() ->插入节点到最后
* insertBefore('要插入的节点','该元素之前') -> 插入到某个节点之前 

##### 删除节点

* removeChild -> 删除子节点
* remove -> 删除自己

##### 替换节点

* replaceChild(new,origin) ->替换节点



### 2.基本操作

#### Element节点的属性

* innerHtml
* innerText(火狐不兼容)/textContent(老版ie不好使)

#### Element节点的方法

* setAttribute()
* getAttribute()

#### 查看滚动条的滚动距离

* window.pageXOffset/pageYOffset  ->IE8及IE8以下不兼容

* document.body/documentElement.scrollLeft/scrollTop  ->兼容性比较混乱,用时取两个值相加,因为不可能存在两个同时有值

* 封装兼容性方法,求滚动轮滚动距离getScrollOffSet()

function getScollOffset() {
if (window.pageXOffset) {
return {
x: window.pageXOffset,
y: window.pageYOffset
}
} else {
return {
x: document.body.scrollLeft + document.documentElement.scrollLeft,
y: document.body.scrollTop + document.documentElement.scrollTop
}
}
}


#### 查看视口尺寸
* window.innerWidth/window.innerHeight  ->可视窗口的宽/高     IE8一下不支持
* document.documentElement.clientWidth/clientHeight  -> 标准模式下任何浏览器都兼容
* document.body.clientWidth/clientHeight   -->适用于怪异模式下的浏览器
* 封装兼容性方法,方法浏览器视口尺寸getViewportOffset()

function getViewportOffset() {
if (window.innerWidth) {
return {
w: window.innerWidth,
h: window.innerHeight
}
} else {
if (document.compatMode === ‘BackCompat’) {
return {
w: document.body.clientWidth,
h: document.body.clientHeight,
}
} else {
return {
w: document.documentElement.clientWidth,
h: document.documentElement.clientHeight
}
}
}
}


* getBoundingClientRect()   -> 获取DOM对象属性

$(“body”)[0].getBoundingClientRect() 返回–> DOMRect 

```


EcmaScript6


文章作者: shipengzhen
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 shipengzhen !
 上一篇
Forge Forge
forge Viewer 3(功能)1.3d\2d获取列表切换 //获取3d,2d列表 viewerDocument.getRoot().search({'type':'geometry','role':'2d'}); viewerDo
2018-09-14
下一篇 
TypeScript TypeScript
初识TypeScriptTypeScript 是一种给 JavaScript 添加特性的语言扩展。 语言特性TypeScript 是一种给 JavaScript 添加特性的语言扩展。增加的功能包括: 类型批注和编译时类型检查 类型推断 类
2018-09-14
  目录