javascrIpt 之说

本文介绍了JavaScript的基本数据类型,包括Number、String、Boolean等,并探讨了变量的另类赋值方式及对象、数组、函数的使用方法。同时,文章还讨论了闭包的概念及其可能引发的内存泄漏问题。
[size=medium]javascript 运行在宿主环境里,主要是浏览器这个宿主环境,也就是浏览器是javascript的解释器.每个浏览器有不同的实现, 实现标准是1999年通过的ECMAScript edition 3(javascript 1.5/1.6).
正在开发的ECMAScript edition 4(javascript2.0).
实现得最接近标准的是firefox浏览器,最差的当然是IE了.

1.javascript的变量类型:
* Number
* String
* Boolean
* Object
o Function
o Array
o Date
o RegExp
o Math
* Null
* Undefined

(1).Number are "double-precision 64-bit format IEEE 754 values",在javascript中没有所谓的integer类型,浮点数运算也会出现不精确,很长的結果.
使用全局方法parseInt(str,base)可以将字符串转化为数字,
如果str不可转化为数字,返回特殊值NaN

(2).String 是Unicode字符序列

(3). Null,undefined的区别, null 是指变量没有值. 而undefined是指定义了变量,但是没有赋值,没有类型
var obj = null;
var name; //name is undefined


2. 变量的另类赋值方式
var name = obj && obj.name; //先判断obj是否为null,
var name = otherName || 'default'; //如果otherName为false,则使用默认值

3. javascript的对象
javascript 是prototype-based的面向对象语言,而不像如java那种class-based.
JavaScript objects are simply collections of name-value pairs.
就像是java中的HashMap
定义方式:
var obj = new Object();
或者更简便的
var obj = {};
直接使用obj定义属性:
obj.name = 'helo';
or
obj['name'] = 'helo';

也可以直接在{}中定义
var obj = {
name:'helo',
detail: {color:'red'}
}

4.Array
var arr = new Array();
or
var arr = [];
arr[0] = 'hel';
arr[1] = 'tow';
遍历数组
for(var i = 0; i < items.length; i++_)
for(var i = 0, len=items.length; i < len; i++)
for(var i in items)

5. Function
函数的定义
function add(a, b) {
}
调用的时候参数个数可以跟function定义的不一样
函数体里有一个特殊的变量 arguments, 数组类型.
可以在函数体里访问到传到函数的参数

函数是对象,所以他也有属性跟方法,如
add.apply(), add.call()
arguments.callee会记录当前函数被调用的次数

6.用户自定义对象
function makePerson(name) {
return {name:name,
add: function(){}
}
}
对象的prototype属性
Person.prototype.sub = function(){
return this.name;
};
之后Person的所有对象都有sub方法, this代表当前对象
也可以对内置对象增加方法
String.prototype.reverse = function(){
var r = "";
for (var i = this.length - 1; i >= 0; i--) {
r += this[i];
}
return r;
}

7.inner function
定义在function内部的方法,
function betterExampleNeeded() {
var a = 1;
function oneMoreThanA() {
return a + 1;
}
return oneMoreThanA();
}

8.closure
function makeAdder(a) {
return function(b) {
return a + b;
}
}

closure 与 inner function的区别是 closure返回的是新方法,outer function被引用了,调用完之后如果赋值给变量,则外部函数的作用域还存在,


9.memery leak
An unfortunate side effect of closures is that they make it trivially easy to leak memory in Internet Explorer. JavaScript is a garbage collected language - objects are allocated memory upon their creation and that memory is reclaimed by the browser when no references to an object remain. Objects provided by the host environment are handled by that environment.

Browser hosts need to manage a large number of objects representing the HTML page being presented - the objects of the DOM. It is up to the browser to manage the allocation and recovery of these.

Internet Explorer uses its own garbage collection scheme for this, separate from the mechanism used by JavaScript. It is the interaction between the two that can cause memory leaks.

[/size]
一、 内容概要 本资源提供了一个完整的“金属板材压弯成型”非线性仿真案例,基于ABAQUS/Explicit或Standard求解器完成。案例精确模拟了模具(凸模、凹模)与金属板材之间的接触、压合过程,直至板材发生塑性弯曲成型。 模型特点:包含完整的模具-工件装配体,定义了刚体约束、通用接触(或面面接触)及摩擦系数。 材料定义:金属板材采用弹塑性材料模型,定义了完整的屈服强度、塑性应变等真实应力-应变数据。 关键结果:提供了成型过程中的板材应力(Mises应力)、塑性应变(PE)、厚度变化​ 云图,以及模具受力(接触力)曲线,完整再现了压弯工艺的力学状态。 二、 适用人群 CAE工程师/工艺工程师:从事钣金冲压、模具设计、金属成型工艺分析与优化的专业人员。 高校师生:学习ABAQUS非线性分析、金属塑性成形理论,或从事相关课题研究的硕士/博士生。 结构设计工程师:需要评估钣金件可制造性(DFM)或预测成型回弹的设计人员。 三、 使用场景及目标 学习目标: 掌握在ABAQUS中设置金属塑性成形仿真的全流程,包括材料定义、复杂接触设置、边界条件与载荷步。 学习如何调试和分析大变形、非线性接触问题的收敛性技巧。 理解如何通过仿真预测成型缺陷(如减薄、破裂、回弹),并与理论或实验进行对比验证。 应用价值:本案例的建模方法与分析思路可直接应用于汽车覆盖件、电器外壳、结构件等钣金产品的冲压工艺开发与模具设计优化,减少试模成本。 四、 其他说明 资源包内包含参数化的INP文件、CAE模型文件、材料数据参考及一份简要的操作要点说明文档。INP文件便于用户直接修改关键参数(如压边力、摩擦系数、行程)进行自主研究。 建议使用ABAQUS 2022或更高版本打开。显式动力学分析(如用Explicit)对计算资源有一定要求。 本案例为教学与工程参考目的提供,用户可基于此框架进行拓展,应用于V型弯曲
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值